k8s-yaml定義pod屬性說明
屬性名稱 | 取值型別 | 是否必選 | 取值說明 |
version | String | Required | 版本號,如 v1 |
kind | String | Required | Pod |
metadata | Object | Required | 元資料 |
metadata.name | String | Required | Pod名稱 |
metadata.namespace | String | Required | Pod所屬的名稱空間,預設default |
metadata.labels[] | List | 自定義標籤列表 | |
metadata.annotaion[] | List | 自定義註解列表 | |
Spec | Object | Required | Pod中容器的詳細定義 |
spec.containers[] | List | Required | Pod中的容器列表 |
spec.containers[].name | String | Required | 容器的名稱 |
spec.containers[].image | String | Required | 容器的映象名稱 |
spec.containers[].imagePullPolicy | String |
獲取映象的策略,預設值:Always Always:每次都嘗試重新下載映象 IfNotPresent: 如果本地有,則使用本地,本地沒有時下載 Never: 僅使用本地映象 |
|
spec.containers[].command[] | List | 容器的啟動命令列表,如不指定,則使用映象打包時使用的啟動命令 | |
spec.comatiners[].args | List | 容器的啟動命令引數列表 | |
spec.containers[].workingDir | String | 容器的工作目錄 | |
spec.containers[].volumeMounts[] | List | 掛載到容器內部的儲存卷配置 | |
spec.containers[].volumeMounts[].name | String | 引用pod定義的共享儲存卷的名稱,需使用volumes[]部分定義的共享儲存卷名稱 | |
spec.containers[].volumeMounts[].mountPath | String | 儲存卷在容器內Mount的絕對路徑,應少於512個字元 | |
spec.containers[].volumeMounts[].readOnly | Boolean | 是否為只讀模式,預設為讀寫模式 | |
spec.containers[].ports[] | List | 容器需要暴露的埠號列表 | |
spec.containers[].ports[].name | String | 埠的名稱 | |
spec.containers[].ports[].containerPort | Int | 容器需要監聽的埠號 | |
spec.containers[].ports[].hostPort | Int |
容器所在主機需要監聽的埠號,預設與containerPort相同,設定hostPort時,同一臺宿主機將無法啟動該容器的第二份副本 |
|
spec.containers[].ports[].protocol | String | 埠協議,支援TCP和UDP,預設為TCP | |
spec.containers[].env[] | List | 容器執行前需設定的環境變數列表 | |
spec.containers[].env[].name | String | 環境變數的名稱 | |
spec.containers[].env[].value | String | 環境變數的值 | |
spec.containers[].resources | Object | 資源限制和資源請求的設定 | |
spec.containers[].resources.limits | Object | 資源限制的設定 | |
spec.containers[].resources.limits.cpu | String | CPU限制,單位為core數,將用於docker run --cpu-shares引數 | |
spec.containers[].resources.limits.memory | String | 記憶體限制,單位可以為MiB/GiB等,將用於docker run --memory引數 | |
spec.containers[].resources.requests | Object | 資源限制的設定 | |
spec.containers[].resources.requests.cpu | String | CPU請求,單位為core數,容器啟動的初始可用數量 | |
spec.containers[].resources.requests.memory | String | 記憶體請求,單位可以是MiB GiB,容器啟動初始可用數量 | |
spec.volumes[] | List | 在該pod上定義的共享儲存卷列表 | |
spec.volumes[].name | String |
共享儲存卷的名稱,在一個pod中每個儲存卷定義了一個名稱,容易定義部分的containers[].volumeMounts[].name將引用該共享儲存卷的名稱。 volume的型別包括: emptyDir、hostPath、gcePersistentDisk、awsElasticBlockStore、gitRepo、secret、 nfs iscsi 、glusterfs、 persistentVolumeClaim、 rbd、 flexVolume、 cinder、 cephfs、 flocker、 downwardAPI、 fc、azureFile、 configMap、 vsphereVolume,可以定義多個volume,每個volume的name保持唯一, |
|
spec.volumes[].emptyDir | Object |
型別為emptyDir的儲存卷,表示與pod同生命週期的一個臨時目錄,其值為一個空物件: emptyDir:{} |
|
spec.volumes[].hostPath | Object |
型別為hostPath的儲存卷,表示掛載pod所在宿主機的目錄,通過volumes[]、hostPath.path指定 |
|
spec.volumes[].hostPath.path | String |
pod所在主機的目錄,將被用於容器中mount的目錄 |
|
spec.volumes[].secret | Object |
型別為secret的儲存卷,表示掛載叢集預定義的secret物件到容器內部 |
|
spec.volumes[].configMap | Object |
型別為configMap的儲存卷,表示掛載叢集預定義的configMap物件到容器內部 |
|
spec.volumes[].livenessProbe.exec | Object |
對pod內各容器健康檢查的設定,exec方式 |
|
spec.volumes[].livenessProbe.exec.command[] | String |
exec方式需要指定的命令或者指令碼 |
|
spec.volumes[].livenessProbe.httpGet | Object |
對pod內各容器健康檢查的設定,HTTPGet方式,需指定path、port |
|
spec.volumes[].livenessProbe.tcpSocket | Object |
對pod內各容器健康檢查的設定,tcpSocket方式 |
|
spec.volumes[].livenessProbe.initialDelaySeconds | Number |
容器啟動完成後進行首次探測的時間,單位為秒 |
|
spec.volumes[].livenessProbe.timeoutSeconds | Number |
對容器健康檢查的探測等待響應的超時時間設定,單位為秒,預設1秒,超過超時時間設定,將認為該容器不健康,會重啟容器 |
|
spec.volumes[].livenessProbe.periodSeconds | Number |
對容器健康檢查的定期探測時間設定,單位為秒,預設10秒探測一次 |
|
spec.restartPolicy | String |
pod的重啟策略,可選值:Always、OnFailure預設為Always, Always:pod一旦終止執行,則無論容器是如何終止的,kubelet都將重啟它 OnFailure: 只有pod以非零退出碼終止時,kubelet才會重啟該容器,如果容器正常結束(退出碼為0),則kubelet不會重啟 Never: pod終止後,kubelet將退出碼報告給master,不會再重啟該pod |
|
spec.nodeSelector | Object |
設定NodeSelector表示將該pod排程到包含這些label的Node上,以key:value格式指定 |
|
spec.imagePullSecrets | Object | Pull映象時使用的secrets名稱,以name:secrekey格式指定 | |
spec.hostNetwork | Boolean | 是否使用主機網路模式,預設為false,如果設定為true,則表示容器使用宿主機網路,不再使用Socker網橋,該pod無法在同一臺宿主機上啟動第2個副本 |