Skip to content

Statefulness on K8s

原文链接

This concept is vastly different than the idea of containers being fast and lightweight and easy to deploy anywhere needed at a moments notice. It’s for this reason that persistent state was purposefully left out of container specs, which opted instead for storage plugins; shifting the responsibility of managing persistent state to another party(container不带storage,而以plugins的方式来进行补充)

There are two key features of an application that require persistent state:

  • the need to persist data beyondapplication outages and restarts
  • and the need to manage application state acrossthe same outages and restarts.

Kubernetes Persistent Volumesand Persistent Volume Claimsprovide a way to abstract the details of how storage is provisioned from how it is consumed.

The .spec.storageClassName can be used to classify the PV as a certain class of storage, which can be leveraged by PVCs to specify a specific class of storage to claim.

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mypvc
spec:
  storageClassName: mysc
  accessModes:
    — ReadWriteOnce
  resources:
    requests:
      storage: 8Gi