Kubernetes 中有状态工作负载部署指南
在 Kubernetes 环境中,管理有状态工作负载是一个重要的课题。本文将深入探讨如何在 Kubernetes 中部署有状态工作负载,包括持久卷声明(PersistentVolumeClaim)、存储类(Storage Class)、单 Pod 有状态工作负载部署以及 StatefulSet 的使用。
1. 持久卷声明与持久卷
持久卷声明(PVC)在绑定持久卷(PV)后会发生显著变化。最初,PVC 是对资源的请求,绑定后则成为对特定磁盘资源的声明,用于存储数据。这与其他 Kubernetes 对象有所不同,通常 Kubernetes 会为对象添加字段或执行操作,但很少有像 PVC 这样从通用存储请求转变为绑定有状态对象的情况。
不过,当有现有数据需要挂载到 Pod 时,情况会有所不同。此时,可以创建已经相互指向的 PVC 和 PV 对象,它们在创建时就会立即绑定。
2. 存储类
存储类用于描述可通过 PVC 请求的不同类型的动态存储,以及如何配置以这种方式请求的卷。Kubernetes 集群通常已经定义了一些存储类,可以使用以下命令查看:
$ kubectl get storageclass
NAME PROVISIONER RECLAIMPOLICY
premium-rwo pd.csi.storage.gke.io Delete
standard kubernetes.io/gce-