apiVersion: v1 # 【必須】版本號
kind: Pod # 【必選】Pod
metadata: # 【必選-Object】元數據
name: String # 【必選】 Pod的名稱
namespace: String # 【必選】 Pod所屬的命名空間
labels: # 【List】 自定義標簽列表
- name: String
annotations: # 【List】 自定義注解列表
- name: String
spec: # 【必選-Object】 Pod中容器的詳細定義
containers: # 【必選-List】 Pod中容器的詳細定義
- name: String # 【必選】 容器的名稱
image: String # 【必選】 容器的鏡像名稱
imagePullPolicy: [Always | Never | IfNotPresent] # 【String】 每次都嘗試重新拉取鏡像 | 僅使用本地鏡像 | 如果本地有鏡像則使用,沒有則拉取
command: [String] # 【List】 容器的啟動命令列表,如果不指定,則使用鏡像打包時使用的啟動命令
args: [String] # 【List】 容器的啟動命令參數列表
workingDir: String # 容器的工作目錄
volumeMounts: # 【List】 掛載到容器內部的存儲卷配置
- name: String # 引用Pod定義的共享存儲卷的名稱,需使用volumes[]部分定義的共享存儲卷名稱
mountPath: Sting # 存儲卷在容器內mount的絕對路徑,應少於512個字符
readOnly: Boolean # 是否為只讀模式,默認為讀寫模式
ports: # 【List】 容器需要暴露的端口號列表
- name: String # 端口的名稱
containerPort: Int # 容器需要監聽的端口號
hostPort: Int # 容器所在主機需要監聽的端口號,默認與containerPort相同。設置hostPort時,同一台宿主機將無法啟動該容器的第二份副本
protocol: String # 端口協議,支持TCP和UDP,默認值為TCP
env: # 【List】 容器運行前需設置的環境變量列表
- name: String # 環境變量的名稱
value: String # 環境變量的值
resources: # 【Object】 資源限制和資源請求的設置
limits: # 【Object】 資源限制的設置
cpu: String # CPU限制,單位為core數,將用於docker run --cpu-shares參數
memory: String # 內存限制,單位可以為MB,GB等,將用於docker run --memory參數
requests: # 【Object】 資源限制的設置
cpu: String # cpu請求,單位為core數,容器啟動的初始可用數量
memory: String # 內存請求,單位可以為MB,GB等,容器啟動的初始可用數量
livenessProbe: # 【Object】 對Pod內各容器健康檢查的設置,當探測無響應幾次之后,系統將自動重啟該容器。可以設置的方法包括:exec、httpGet和tcpSocket。對一個容器只需要設置一種健康檢查的方法
exec: # 【Object】 對Pod內各容器健康檢查的設置,exec方式
command: [String] # exec方式需要指定的命令或者腳本
httpGet: # 【Object】 對Pod內各容器健康檢查的設置,HTTGet方式。需要指定path、port
path: String
port: Number
host: String
scheme: String
httpHeaders:
- name: String
value: String
tcpSocket: # 【Object】 對Pod內各容器健康檢查的設置,tcpSocket方式
port: Number
initialDelaySeconds: Number # 容器啟動完成后首次探測的時間,單位為s
timeoutSeconds: Number # 對容器健康檢查的探測等待響應的超時時間設置,單位為s,默認值為1s。若超過該超時時間設置,則將認為該容器不健康,會重啟該容器。
periodSeconds: Number # 對容器健康檢查的定期探測時間設置,單位為s,默認10s探測一次
successThreshold: 0
failureThreshold: 0
securityContext:
privileged: Boolean
restartPolicy: [Always | Never | OnFailure] # Pod的重啟策略 一旦終止運行,都將重啟 | 終止后kubelet將報告給master,不會重啟 | 只有Pod以非零退出碼終止時,kubelet才會重啟該容器。如果容器正常終止(退出碼為0),則不會重啟。
nodeSelector: object # 設置Node的Label,以key:value格式指定,Pod將被調度到具有這些Label的Node上
imagePullSecrets: # 【Object】 pull鏡像時使用的Secret名稱,以name:secretkey格式指定
- name: String
hostNetwork: Boolean # 是否使用主機網絡模式,默認值為false。設置為true表示容器使用宿主機網絡,不再使用docker網橋,該Pod將無法在同一台宿主機上啟動第二個副本
volumes: # 【List】 在該Pod上定義的共享存儲卷列表
- name: String # 共享存儲卷的名稱,volume的類型有很多emptyDir,hostPath,secret,nfs,glusterfs,cephfs,configMap
emptyDir: {} # 【Object】 類型為emptyDir的存儲卷,表示與Pod同生命周期的一個臨時目錄,其值為一個空對象:emptyDir: {}
hostPath: # 【Object】 類型為hostPath的存儲卷,表示掛載Pod所在宿主機的目錄
path: String # Pod所在主機的目錄,將被用於容器中mount的目錄
secret: # 【Object】類型為secret的存儲卷,表示掛載集群預定義的secret對象到容器內部
secretName: String
items:
- key: String
path: String
configMap: # 【Object】 類型為configMap的存儲卷,表示掛載集群預定義的configMap對象到容器內部
name: String
items:
- key: String
path: String