
1 apiVersion: v1 # 必選,版本號,例如v1 2 kind: Pod # 必選,Pod 3 metadata: # 必選,元數據 4 name: string # 必選,Pod名稱 5 namespace: string # 必選,Pod所屬的命名空間 6 labels: # 自定義標簽 7 - name: string # 自定義標簽名字 8 annotations: # 自定義注釋列表 9 - name: string 10 spec: # 必選,Pod中容器的詳細定義 11 containers: # 必選,Pod中容器列表 12 - name: string # 必選,容器名稱 13 image: string # 必選,容器的鏡像名稱 14 imagePullPolicy: [Always | Never | IfNotPresent]# 鏡像拉取的策略,默認為Always:Alawys 表示每次都嘗試重新拉取鏡像;IfNotPresent 表示如果本地有該鏡像,則使用本地鏡像,本地不存在時拉取鏡像;Nerver表示僅使用本地鏡像 15 command: [string] # 容器的啟動命令列表,如不指定,使用打包時使用的啟動命令 16 args: [string] # 容器的啟動命令參數列表 17 workingDir: string # 容器的工作目錄 22 volumeMounts: # 掛載到容器內部的存儲卷配置 23 - name: string # 引用pod定義的共享存儲卷的名稱,需用volumes[]部分定義的的卷名 24 mountPath: string # 存儲卷在容器內mount的絕對路徑,應少於512字符 25 readOnly: boolean # 是否為只讀模式,默認為讀寫模式 26 ports: # 需要暴露的端口庫號列表 27 - name: string # 端口號名稱 28 containerPort: int # 容器需要監聽的端口號 29 hostPort: int # 容器所在主機需要監聽的端口號,默認與Container相同。 30 # 當設置hostPort時,同一台宿主機將無法啟動該容器的第二個副本 31 protocol: string # 端口協議,支持TCP和UDP,默認TCP 32 env: # 容器運行前需設置的環境變量列表 33 - name: string # 環境變量名稱 34 value: string # 環境變量的值 35 resources: # 資源限制和請求的設置 36 limits: # 資源限制的設置 37 cpu: string # Cpu的限制,單位為core數,將用於docker run --cpu-shares參數 38 memory: string # 內存限制,單位可以為Mib/Gib,將用於docker run --memory參數 39 requests: # 資源請求的設置 40 cpu: string # Cpu請求,容器啟動的初始可用數量 41 memory: string # 內存清楚,容器啟動的初始可用數量 42 livenessProbe:# 對Pod內個容器健康檢查的設置,當探測無響應幾次后將自動重啟該容器;檢查方法有exec、httpGet和tcpSocket,對一個容器只需設置其中一種方法即可 45 exec: # 對Pod容器內檢查方式設置為exec方式 46 command: [string] # exec方式需要制定的命令或腳本 47 httpGet: # 對Pod內個容器健康檢查方法設置為HttpGet,需要制定Path、port 48 path: string 49 port: number 50 host: string 51 scheme: string 52 HttpHeaders: 53 - name: string 54 value: string 55 tcpSocket: # 對Pod內個容器健康檢查方式設置為tcpSocket方式 56 port: number 57 initialDelaySeconds: 0 # 容器啟動完成后首次探測的時間,單位為秒 58 timeoutSeconds: 0 # 對容器健康檢查探測等待響應的超時時間,單位秒,默認1秒 59 periodSeconds: 0 # 對容器監控檢查的定期探測時間設置,單位秒,默認10秒一次 60 successThreshold: 0 61 failureThreshold: 0 62 securityContext: 63 privileged: false 64 restartPolicy: [Always | Never | OnFailure]# Pod的重啟策略: Always表示不管以何種方式終止運行,kubelet都將重啟;OnFailure表示只有Pod以非0退出碼退出才重啟; Nerver表示不再重啟該Pod 69 nodeSelector: obeject # 設置NodeSelector表示將該Pod調度到包含這個label的node上,以key:value的格式指定 70 imagePullSecrets: # Pull鏡像時使用的secret名稱,以key:secretkey格式指定 71 - name: string 72 hostNetwork: false # 是否使用主機網絡模式,默認為false,如果設置為true,表示使用宿主機網絡 73 volumes: # 在該pod上定義共享存儲卷列表 74 - name: string # 共享存儲卷名稱 (volumes類型有很多種) 75 emptyDir: {} # 類型為emtyDir的存儲卷,與Pod同生命周期的一個臨時目錄。為空值 76 hostPath: string # 類型為hostPath的存儲卷,表示掛載Pod所在宿主機的目錄 77 path: string # Pod所在宿主機的目錄,將被用於同期中mount的目錄 78 secret: # 類型為secret的存儲卷,掛載集群與定義的secre對象到容器內部 79 scretname: string 80 items: 81 - key: string 82 path: string 83 configMap: # 類型為configMap的存儲卷,掛載預定義的configMap對象到容器內部 84 name: string 85 items: 86 - key: string 87 path: string