1. 程式人生 > 實用技巧 >k8s定義yaml檔案常用的一些欄位

k8s定義yaml檔案常用的一些欄位

spec:
  replicas: 6  # 定義副本數量
  strategy:
    rollingUpdate: # 滾動更新通過引數 maxSurge 和 maxUnavailable 來控制副本替換的數量
      maxSurge: 35%
      maxUnavailable: 35% 
  template:
    spec:
      containers:
        livenessProbe:
          exec:
            command:
            - cat
            - /tmp/healthy # 定義存活健康檢查(exec方式)
        readinessProbe: # 定義就緒健康檢查(httpGet方式)
          httpGet:
            scheme: HTTP
            path: /healthy
            port: 8080
          initialDelaySeconds: 10
          periodSeconds: 5
        volumeMounts: # 使用empty_dir作為儲存(pod不在,volume也在)
        - mountPath: /consumer_dir
          name: shared-volume
        - mountPath: /etc/ssl/certs  # 使用host-path作為儲存
          name: ca-certs
          readOnly: true
        - mountPath: /test-ebs # 使用外部的storage provider作為儲存
          name: ebs-volume
        - name: foo # 通過volume的方式來使用secret
          mountPath: "/etc/foo"
          readOnly: true
        - name: foo # 通過volume的方式來使用configmap
          mountPath: /etc/foo
          readOnly: true
        env: # 通過env的方式來使用secret
          - name: SECRET_USERNAME
            valueFrom:
              secretKeyRef:
                name: my-secret
                key: username
          - name: SECRET_PASSWORD
            valueFrom:
              secretKeyRef:
                name: my-secret
                key: password
          - name: CONFIG_1 # 通過env的方式來使用configmap
            valueFrom:
              configMapKeyRef:
                name: my-configmap1
                key: config1
          - name: CONFIG_2
            valueFrom:
              configMapKeyRef:
                name: my-configmap1
                key: config2
      volumes:
      - name: shared-volume
        emptyDir: {}
      - hostPath:  # 使用host-path作為儲存
          path: /etc/ssl/certs
          type: DirectoryOrCreate
        name: ca-certs
      - name: ebs-volume # 使用外部的storage provider作為儲存
        awsElasticBlockStore:
          volumeID: <volume-id>
          fsType: ext4
      - name: wwwroot # 定義使用pvc來做儲存
        persistentVolumeClaim:
          claimName: my-pvc
      - name: foo # 通過volume的方式來使用secret
        secret:
          secretName: mysecret
        items: # 自定義存放資料的檔名
        - key: username
          path: my-group/my-username
        - key: password
          path: my-group/my-password
      - name: foo # 通過volume的方式來使用configmap
        configMap:
          name: my-configmap
          items:
            - key: logging.conf
              path: myapp/logging.conf
      nodeSelector:
        disktype: ssd  # 定義節點標籤選擇器