kubernetes-Pod定义
下面是Pod的資源清單:
apiVersion: v1 ? ? #必選,版本號,例如v1 kind: Pod ? ? ? #必選,資源類型,例如 Pod metadata: ? ? ? #必選,元數據name: string ? ? #必選,Pod名稱namespace: string ?#Pod所屬的命名空間,默認為"default"labels: ? ? ? ?#自定義標簽列表- name: string ? ? ? ? ? ? ? spec: ?#必選,Pod中容器的詳細定義containers: ?#必選,Pod中容器列表- name: string ? #必選,容器名稱image: string ?#必選,容器的鏡像名稱imagePullPolicy: [ Always|Never|IfNotPresent ] ?#獲取鏡像的策略 command: [string] ? #容器的啟動命令列表,如不指定,使用打包時使用的啟動命令args: [string] ? ? ?#容器的啟動命令參數列表workingDir: string ?#容器的工作目錄volumeMounts: ? ? ? #掛載到容器內部的存儲卷配置- name: string ? ? ?#引用pod定義的共享存儲卷的名稱,需用volumes[]部分定義的的卷名mountPath: string #存儲卷在容器內mount的絕對路徑,應少于512字符readOnly: boolean #是否為只讀模式ports: #需要暴露的端口庫號列表- name: string ? ? ? ?#端口的名稱containerPort: int ?#容器需要監聽的端口號hostPort: int ? ? ? #容器所在主機需要監聽的端口號,默認與Container相同protocol: string ? ?#端口協議,支持TCP和UDP,默認TCPenv: ? #容器運行前需設置的環境變量列表- name: string ?#環境變量名稱value: string #環境變量的值resources: #資源限制和請求的設置limits: ?#資源限制的設置cpu: string ? ? #Cpu的限制,單位為core數,將用于docker run --cpu-shares參數memory: string ?#內存限制,單位可以為Mib/Gib,將用于docker run --memory參數requests: #資源請求的設置cpu: string ? ?#Cpu請求,容器啟動的初始可用數量memory: string #內存請求,容器啟動的初始可用數量lifecycle: #生命周期鉤子postStart: #容器啟動后立即執行此鉤子,如果執行失敗,會根據重啟策略進行重啟preStop: #容器終止前執行此鉤子,無論結果如何,容器都會終止livenessProbe: ?#對Pod內各容器健康檢查的設置,當探測無響應幾次后將自動重啟該容器exec: ? ? ? #對Pod容器內檢查方式設置為exec方式command: [string] ?#exec方式需要制定的命令或腳本httpGet: ? ? ? #對Pod內個容器健康檢查方法設置為HttpGet,需要制定Path、portpath: stringport: numberhost: stringscheme: stringHttpHeaders:- name: stringvalue: stringtcpSocket: ? ? #對Pod內個容器健康檢查方式設置為tcpSocket方式port: numberinitialDelaySeconds: 0 ? ? ? #容器啟動完成后首次探測的時間,單位為秒timeoutSeconds: 0 ? ? ?#對容器健康檢查探測等待響應的超時時間,單位秒,默認1秒periodSeconds: 0 ? ? ? ?#對容器監控檢查的定期探測時間設置,單位秒,默認10秒一次successThreshold: 0failureThreshold: 0securityContext:privileged: falserestartPolicy: [Always | Never | OnFailure] ?#Pod的重啟策略nodeName: <string> #設置NodeName表示將該Pod調度到指定到名稱的node節點上nodeSelector: obeject #設置NodeSelector表示將該Pod調度到包含這個label的node上imagePullSecrets: #Pull鏡像時使用的secret名稱,以key:secretkey格式指定- name: stringhostNetwork: false ? #是否使用主機網絡模式,默認為false,如果設置為true,表示使用宿主機網絡volumes: ? #在該pod上定義共享存儲卷列表- name: string ? ?#共享存儲卷名稱 (volumes類型有很多種)emptyDir: {} ? ? ? #類型為emtyDir的存儲卷,與Pod同生命周期的一個臨時目錄。為空值hostPath: string ? #類型為hostPath的存儲卷,表示掛載Pod所在宿主機的目錄path: string ? ? ? ? ? ?#Pod所在宿主機的目錄,將被用于同期中mount的目錄secret: ? ? ? #類型為secret的存儲卷,掛載集群與定義的secret對象到容器內部scretname: string ?items: ? ? - key: stringpath: stringconfigMap: ? ? ? ? #類型為configMap的存儲卷,掛載預定義的configMap對象到容器內部name: stringitems:- key: stringpath: string #小提示: # ? 在這里,可通過一個命令來查看每種資源的可配置項 # ? kubectl explain 資源類型 ? ? ? ? 查看某種資源可以配置的一級屬性 # ? kubectl explain 資源類型.屬性 ? ? 查看屬性的子屬性 [root@k8s-master01 ~]# kubectl explain pod KIND: ? ? Pod VERSION: v1 FIELDS:apiVersion ? <string>kind <string>metadata ? ? <Object>spec <Object>status ? ? ? <Object> ? [root@k8s-master01 ~]# kubectl explain pod.metadata KIND: ? ? Pod VERSION: v1 RESOURCE: metadata <Object> FIELDS:annotations <map[string]string>clusterName <string>creationTimestamp ? <string>deletionGracePeriodSeconds ? <integer>deletionTimestamp ? <string>finalizers ? <[]string>generateName <string>generation ? <integer>labels ? ? ? <map[string]string>managedFields ? ? ? <[]Object>name <string>namespace ? <string>ownerReferences ? ? <[]Object>resourceVersion ? ? <string>selfLink ? ? <string>uid <string>在kubernetes中基本所有資源的一級屬性都是一樣的,主要包含5部分:
-
apiVersion <string> 版本,由kubernetes內部定義,版本號必須可以用 kubectl api-versions 查詢到
-
kind <string> 類型,由kubernetes內部定義,版本號必須可以用 kubectl api-resources 查詢到
-
metadata <Object> 元數據,主要是資源標識和說明,常用的有name、namespace、labels等
-
spec <Object> 描述,這是配置中最重要的一部分,里面是對各種資源配置的詳細描述
-
status <Object> 狀態信息,里面的內容不需要定義,由kubernetes自動生成
在上面的屬性中,spec是接下來研究的重點,繼續看下它的常見子屬性:
-
containers <[]Object> 容器列表,用于定義容器的詳細信息
-
nodeName <String> 根據nodeName的值將pod調度到指定的Node節點上
-
nodeSelector <map[]> 根據NodeSelector中定義的信息選擇將該Pod調度到包含這些label的Node 上
-
hostNetwork <boolean> 是否使用主機網絡模式,默認為false,如果設置為true,表示使用宿主機網絡
-
volumes <[]Object> 存儲卷,用于定義Pod上面掛在的存儲信息
-
restartPolicy <string> 重啟策略,表示Pod在遇到故障的時候的處理策略
總結
以上是生活随笔為你收集整理的kubernetes-Pod定义的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: kubernetes-Pod结构
- 下一篇: Pod详解-端口设置