[置頂] kubernetes建立資源yaml文件例子--pod

kubernetes建立pod的yaml文件,參數說明node

apiVersion: v1 #指定api版本,此值必須在kubectl apiversion中
kind: Pod #指定建立資源的角色/類型
metadata: #資源的元數據/屬性
  name: web04-pod #資源的名字,在同一個namespace中必須惟一
  labels: #設定資源的標籤
    k8s-app: apache
    version: v1
    kubernetes.io/cluster-service: "true"
  annotations:            #自定義註解列表
    - name: String        #自定義註解名字
spec:#specification of the resource content 指定該資源的內容
  restartPolicy: Always #代表該容器一直運行,默認k8s的策略,在此容器退出後,會當即建立一個相同的容器
  nodeSelector:     #節點選擇,先給主機打標籤kubectl label nodes kube-node1 zone=node1
    zone: node1
  containers:
  - name: web04-pod #容器的名字
    image: web:apache #容器使用的鏡像地址
    imagePullPolicy: Never #[Always|Never|IfNotPresent]獲取鏡像的策略
    command: ['sh'] #覆蓋容器中的Entrypoint,對應Dockefile中的ENTRYPOINT
    args: ["$(str)"] #對應Dockerfile中CMD參數
    env: #指定容器中的環境變量
    - name: str #變量的名字
      value: "/etc/run.sh" #變量的值
    resources: #資源管理
      requests: #最小資源需求
        cpu: 0.1 #設置能夠使用CPU個數,兩種方式,浮點數或者是整數+m,0.1=100m
        memory: 32Mi #內存使用量
      limits: #資源限制
        cpu: 0.5
        memory: 32Mi
    ports:
    - containerPort: 80
      name: httpd
      protocol: TCP
    livenessProbe: #pod內容器健康檢查的設置
      httpGet: #經過httpget檢查健康,返回200-399之間,則認爲容器正常
        path: / #URI地址
        port: 80
        #host: 127.0.0.1 #主機地址
        scheme: HTTP
      initialDelaySeconds: 180 #代表第一次檢測在容器啓動後多長時間後開始
      timeoutSeconds: 5 #檢測的超時時間
      periodSeconds: 15  #檢查間隔時間
      #也能夠用這種方法
      #exec: 執行命令的方法進行監測,若是其退出碼不爲0,則認爲容器正常
      #  command:
      #    - cat
      #    - /tmp/health
      #也能夠用這種方法
      #tcpSocket: //經過tcpSocket檢查健康 
      #  port: number 
    lifecycle: #生命週期管理
      postStart: #容器運行以前運行的任務
        exec:
          command:
            - 'sh'
            - 'yum upgrade -y'
      preStop:#容器關閉以前運行的任務
        exec:
          command: ['service httpd stop']
    volumeMounts:
    - name: volume #掛載設備的名字,與volumes[*].name 須要對應  
      mountPath: /data #掛載到容器的某個路徑下
      readOnly: True
  volumes: #定義一組掛載設備
  - name: volume #定義一個掛載設備的名字
    #meptyDir: {}
    hostPath:
      path: /opt #掛載設備類型爲hostPath,路徑爲宿主機下的/opt,這裏設備類型支持不少種
相關文章
相關標籤/搜索