Kubernetes deployment.yaml文件配置解析

apiVersion: extensions/v1beta1
kind: Deployment
metadata: <Object>
spec: <Object>
  minReadySeconds: <integer> #設置pod準備就緒的最小秒數
  paused: <boolean> #表示部署已暫停並且deploy控制器不會處理該部署
  progressDeadlineSeconds: <integer>
  strategy: <Object> #將現有pod替換爲新pod的部署策略
    rollingUpdate: <Object> #滾動更新配置參數,僅當類型爲RollingUpdate
      maxSurge: <string> #滾動更新過程產生的最大pod數量,可以是個數,也可以是百分比
      maxUnavailable: <string> #
    type: <string> #部署類型,Recreate,RollingUpdate
  replicas: <integer> #pods的副本數量
  selector: <Object> #pod標籤選擇器,匹配pod標籤,默認使用pods的標籤
    matchLabels: <map[string]string> 
      key1: value1
      key2: value2
    matchExpressions: <[]Object>
      operator: <string> -required- #設定標籤鍵與一組值的關係,In, NotIn, Exists and DoesNotExist
      key: <string> -required-
      values: <[]string>   
  revisionHistoryLimit: <integer> #設置保留的歷史版本個數,默認是10
  rollbackTo: <Object> 
    revision: <integer> #設置回滾的版本,設置爲0則回滾到上一個版本
  template: <Object> -required-
    metadata:
    spec:
      containers: <[]Object> #容器配置
      - name: <string> -required- #容器名、DNS_LABEL
        image: <string> #鏡像
        imagePullPolicy: <string> #鏡像拉取策略,Always、Never、IfNotPresent
        ports: <[]Object>
        - name: #定義端口名
          containerPort: #容器暴露的端口
          protocol: TCP #或UDP
        volumeMounts: <[]Object>
        - name: <string> -required- #設置卷名稱
          mountPath: <string> -required- #設置需要掛載容器內的路徑
          readOnly: <boolean> #設置是否只讀
        livenessProbe: <Object> #就緒探測
          exec: 
            command: <[]string>
          httpGet:
            port: <string> -required-
            path: <string>
            host: <string>
            httpHeaders: <[]Object>
              name: <string> -required-
              value: <string> -required-
            scheme: <string> 
          initialDelaySeconds: <integer> #設置多少秒後開始探測
          failureThreshold: <integer> #設置連續探測多少次失敗後,標記爲失敗,默認三次
          successThreshold: <integer> #設置失敗後探測的最小連續成功次數,默認爲1
          timeoutSeconds: <integer> #設置探測超時的秒數,默認1s
          periodSeconds: <integer> #設置執行探測的頻率(以秒爲單位),默認1s
          tcpSocket: <Object> #TCPSocket指定涉及TCP端口的操作
            port: <string> -required- #容器暴露的端口
            host: <string> #默認pod的IP
        readinessProbe: <Object> #同livenessProbe
        resources: <Object> #資源配置
          requests: <map[string]string> #最小資源配置
            memory: "1024Mi"
            cpu: "500m" #500m代表0.5CPU
          limits: <map[string]string> #最大資源配置
            memory:
            cpu:         
      volumes: <[]Object> #數據卷配置
      - name: <string> -required- #設置卷名稱,與volumeMounts名稱對應
        hostPath: <Object> #設置掛載宿主機路徑
          path: <string> -required- 
          type: <string> #類型:DirectoryOrCreate、Directory、FileOrCreate、File、Socket、CharDevice、BlockDevice
      - name: nfs
        nfs: <Object> #設置NFS服務器
          server: <string> -required- #設置NFS服務器地址
          path: <string> -required- #設置NFS服務器路徑
          readOnly: <boolean> #設置是否只讀
      - name: configmap
        configMap: 
          name: <string> #configmap名稱
          defaultMode: <integer> #權限設置0~0777,默認0664
          optional: <boolean> #指定是否必須定義configmap或其keys
          items: <[]Object>
          - key: <string> -required-
            path: <string> -required-
            mode: <integer>
      restartPolicy: <string> #重啓策略,Always、OnFailure、Never
      nodeName: <string>
      nodeSelector: <map[string]string>
      imagePullSecrets: <[]Object>
      hostname: <string>
      hostPID: <boolean>
status: <Object>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章