Kubernetes Pod YAML文件定義詳解


 

 

 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
Pod YAML定義文件詳解


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM