來源:https://www.cnblogs.com/arrow-kejin/p/10058758.html
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
