云容器引擎 CCE-部署带对象存储卷OBS的有状态工作负载:操作步骤
操作步骤
- 参照存储卷声明PVC中操作创建对象存储卷,并获取PVC名称。
- 请参见通过kubectl连接集群,使用kubectl连接集群。
- 新建一个YAML文件,用于创建工作负载。假设文件名为obs-statefulset-example.yaml。
touch obs-statefulset-example.yaml
vi obs-statefulset-example.yaml
配置示例:
apiVersion: apps/v1kind: StatefulSetmetadata: name: obs-statefulset-example namespace: defaultspec: replicas: 1 selector: matchLabels: app: obs-statefulset-example template: metadata: labels: app: obs-statefulset-example spec: volumes: - name: pvc-obs-example persistentVolumeClaim: claimName: pvc-obs-example containers: - name: container-0 image: 'nginx:latest' volumeMounts: - name: pvc-obs-example mountPath: /tmp restartPolicy: Always imagePullSecrets: - name: default-secret serviceName: obs-statefulset-example-headless # Headless Service的名称
表1 关键参数说明 参数
描述
replicas
实例数。
name
新建工作负载的名称。
image
新建工作负载使用的镜像。
mountPath
容器内挂载路径。
serviceName
工作负载对应的服务,服务创建过程请参见创建有状态负载(StatefulSet)。
claimName
已有PVC名称。
在有状态工作负载中基于PVCTemplate独占式使用对象存储。
yaml示例如下:
apiVersion: apps/v1kind: StatefulSetmetadata: name: obs-statefulset-example namespace: defaultspec: replicas: 1 selector: matchLabels: app: obs-statefulset-example template: metadata: labels: app: obs-statefulset-example spec: containers: - name: container-0 image: 'nginx:latest' volumeMounts: - name: pvc-obs-auto-example mountPath: /tmp restartPolicy: Always imagePullSecrets: - name: default-secret volumeClaimTemplates: - metadata: name: pvc-obs-auto-example namespace: default annotations: everest.io/obs-volume-type: STANDARD spec: accessModes: - ReadWriteMany resources: requests: storage: 1Gi storageClassName: csi-obs serviceName: obs-statefulset-example-headless
- 创建有状态工作负载。
kubectl create -f obs-statefulset-example.yaml