要在 Tanzu Kubernetes 集群上运行有状态工作负载,可以创建持久卷声明 (PVC),以请求持久存储资源,而无需了解底层存储基础架构的详细信息。用于 PVC 的存储从 vSphere 命名空间 的存储配额进行分配。

默认情况下,容器是临时和无状态容器。对于有状态工作负载,一种常用的方法是创建持久卷声明 (PVC)。可以使用 PVC 挂载持久卷和访问存储。请求会动态地置备持久卷对象和匹配的虚拟磁盘。此声明将绑定到持久卷。删除此声明时,也将删除相应的持久卷对象和已置备的虚拟磁盘。

过程

  1. 登录到目标 Tanzu Kubernetes 集群。请参见以 vCenter Single Sign-On 用户身份连接到 Tanzu Kubernetes 集群
  2. 切换到正在运行集群的命名空间。
    kubectl config use-context NAMESPACE
  3. 验证存储类或创建一个存储类。
    要验证现有存储类,请执行以下命令:
    kubectl get storageclass
    要创建存储类,请参见 Tanzu Kubernetes 存储类示例
  4. 创建命名空间。
    kubectl create namespace guestbook
  5. 创建 Guestbook PVC YAML 文件。
  6. 将 Guestbook PVC 应用于集群。
    kubectl apply -f redis-leader-pvc.yaml -n guestbook
    kubectl apply -f redis-follower-pvc.yaml -n guestbook
  7. 验证 PVC 的状态。
    kubectl get pvc,pv -n guestbook
    PVC 和持久卷 (PV) 将列出,并可供使用。
    NAME                                       STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS         AGE
    persistentvolumeclaim/redis-follower-pvc   Bound    pvc-37b72f35-3de2-4f84-be7d-50d5dd968f62   2Gi        RWO            tkgs-storage-class   66s
    persistentvolumeclaim/redis-leader-pvc     Bound    pvc-2ef51f31-dd4b-4fe2-bf4c-f0149cb4f3da   2Gi        RWO            tkgs-storage-class   66s
    
    NAME                                                CAPACITY   ACCESS MODES   RECLAIM POLICY STATUS   CLAIM                 STORAGECLASS         
    persistentvolume/pvc-2ef51f31-dd4b-4fe2-bf4c   2Gi  RWO            Delete           Bound    guestbook/redis-leader-pvc     tkgs-storage-class
    persistentvolume/pvc-37b72f35-3de2-4f84-be7d   2Gi  RWO            Delete           Bound    guestbook/redis-follower-pvc   tkgs-storage-class