1 apiVersion: v1 #指定api版本,此值必須在kubectl apiversion中 2 kind: Pod #指定建立資源的角色/類型 3 metadata: #資源的元數據/屬性 4 name: django-pod #資源的名字,在同一個namespace中必須惟一 5 labels: #設定資源的標籤,使這個標籤在service網絡中備案,以便被獲知 6 k8s-app: django 7 version: v1 8 kubernetes.io/cluster-service: "true" 9 annotations: #設置自定義註解列表 10 - name: String #設置自定義註解名字 11 spec: #設置該資源的內容 12 restartPolicy: Always #表示自動重啓,一直都會有這個容器運行 13 nodeSelector: #選擇node節點14 zone: node1 15 containers: 16 - name: django-pod #容器的名字 17 image: django:v1.1 #容器使用的鏡像地址 18 imagePullPolicy: Never #三個選擇Always、Never、IfNotPresent,每次啓動時檢查和更新(從registery)images的策略, 19 # Always,每次都檢查 20 # Never,每次都不檢查(無論本地是否有) 21 # IfNotPresent,若是本地有就不檢查,若是沒有就拉取 22 command: ['sh'] #啓動容器的運行命令,將覆蓋容器中的Entrypoint,對應Dockefile中的ENTRYPOINT 23 args: ["$(str)"] #啓動容器的命令參數,對應Dockerfile中CMD參數 24 env: #指定容器中的環境變量 25 - name: str #變量的名字 26 value: "/etc/run.sh" #變量的值 27 resources: #資源管理 28 requests: #容器運行時,最低資源需求,也就是說最少須要多少資源容器才能正常運行 29 cpu: 0.1 #CPU資源(核數),兩種方式,浮點數或者是整數+m,0.1=100m,最少值爲0.001核(1m) 30 memory: 32Mi #內存使用量 31 limits: #資源限制 32 cpu: 0.5 33 memory: 32Mi 34 ports: 35 - containerPort: 8080 #容器開發對外的端口 36 name: uwsgi #名稱 37 protocol: TCP 38 livenessProbe: #pod內容器健康檢查的設置 39 httpGet: #經過httpget檢查健康,返回200-399之間,則認爲容器正常 40 path: / #URI地址 41 port: 8080 42 #host: 127.0.0.1 #主機地址 43 scheme: HTTP 44 initialDelaySeconds: 180 #代表第一次檢測在容器啓動後多長時間後開始 45 timeoutSeconds: 5 #檢測的超時時間 46 periodSeconds: 15 #檢查間隔時間 47 #也能夠用這種方法 48 #exec: 執行命令的方法進行監測,若是其退出碼不爲0,則認爲容器正常 49 # command: 50 # - cat 51 # - /tmp/health 52 #也能夠用這種方法 53 #tcpSocket: //經過tcpSocket檢查健康 54 # port: number 55 lifecycle: #生命週期管理(鉤子) 56 postStart: #容器運行以前運行的任務 57 exec: 58 command: 59 - 'sh' 60 - 'yum upgrade -y' 61 preStop: #容器關閉以前運行的任務 62 exec: 63 command: ['service httpd stop'] 64 volumeMounts: #掛載設置 65 - name: volume #掛載設備的名字,與volumes[*].name 須要對應 66 mountPath: /data #掛載到容器的某個路徑下 67 readOnly: True 68 volumes: #定義一組掛載設備 69 - name: volume #定義一個掛載設備的名字 70 #meptyDir: {} 71 hostPath: 72 path: /opt #掛載設備類型爲hostPath,路徑爲宿主機下的/opt