云容器引擎 CCE_AUTOPILOT集群-创建有状态负载(StatefulSet):通过kubectl命令行创建
通过kubectl命令行创建
Autopilot集群暂不支持配置节点亲和与反亲和,所以当您使用kubectl命令行创建工作负载时,为避免Pod创建失败,请不要配置affinity字段。
- 请参见通过kubectl连接集群,使用kubectl连接集群。
- 创建一个名为nginx-statefulset.yaml的文件。
其中,nginx-statefulset.yaml为自定义名称,您可以随意命名。
vi nginx-statefulset.yaml
以下内容仅为示例,若需要了解statefulset的详细内容,请参考kubernetes官方文档。
apiVersion: apps/v1 kind: StatefulSet metadata: name: nginx spec: selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: container-1 image: nginx:latest imagePullPolicy: IfNotPresent resources: requests: cpu: 250m memory: 512Mi limits: cpu: 250m memory: 512Mi imagePullSecrets: - name: default-secret dnsPolicy: ClusterFirst serviceName: nginx-svc replicas: 2 updateStrategy: type: RollingUpdate
vi nginx-headless.yaml
apiVersion: v1 kind: Service metadata: name: nginx-svc namespace: default labels: app: nginx spec: selector: app: nginx version: v1 clusterIP: None ports: - name: nginx targetPort: 80 nodePort: 0 port: 80 protocol: TCP type: ClusterIP
- 创建工作负载以及对应headless服务。
kubectl create -f nginx-statefulset.yaml
回显如下,表示有状态工作负载(stateful)已创建成功。
statefulset.apps/nginx created
kubectl create -f nginx-headless.yaml
回显如下,表示对应headless服务已创建成功。
service/nginx-svc created
- 若工作负载需要被访问(集群内访问或节点访问),您需要设置访问方式,具体请参见服务(Service)创建对应服务。