云容器引擎 CCE_AUTOPILOT集群-创建有状态负载(StatefulSet):通过kubectl命令行创建

时间:2024-10-17 21:44:00

通过kubectl命令行创建

Autopilot集群暂不支持配置节点亲和与反亲和,所以当您使用kubectl命令行创建工作负载时,为避免Pod创建失败,请不要配置affinity字段。

  1. 请参见通过kubectl连接集群,使用kubectl连接集群。
  2. 创建一个名为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

  3. 创建工作负载以及对应headless服务。

    kubectl create -f nginx-statefulset.yaml

    回显如下,表示有状态工作负载(stateful)已创建成功。

    statefulset.apps/nginx created

    kubectl create -f nginx-headless.yaml

    回显如下,表示对应headless服务已创建成功。

    service/nginx-svc created

  4. 工作负载需要被访问(集群内访问或节点访问),您需要设置访问方式,具体请参见服务(Service)创建对应服务。
support.huaweicloud.com/usermanual-cce-autopilot/cce_11_0048.html