k8s之yaml檔案書寫格式

2022-03-21 15:58:27 字數 3753 閱讀 9953

1 # yaml格式的pod定義檔案完整內容:

2 apiversion: v1 #必選,版本號,例如v1

3 kind: pod #必選,pod

4 metadata: #必選,元資料

5 name: string #必選,pod名稱

6 namespace: string #必選,pod所屬的命名空間

7 labels: #自定義標籤

8 - name: string #自定義標籤名字

9 annotations: #自定義注釋列表

10 - name: string

11 spec: #必選,pod中容器的詳細定義

12 containers: #必選,pod中容器列表

13 - name: string #必選,容器名稱

14 image: string #必選,容器的映象名稱

16 command: [string] #容器的啟動命令列表,如不指定,使用打包時使用的啟動命令

17 args: [string] #容器的啟動命令引數列表

18 workingdir: string #容器的工作目錄

19 volumemounts: #掛載到容器內部的儲存卷配置

20 - name: string #引用pod定義的共享儲存卷的名稱,需用volumes部分定義的的卷名

21 mountpath: string #儲存卷在容器內mount的絕對路徑,應少於512字元

22 readonly: boolean #是否為唯讀模式

23 ports: #需要暴露的埠庫號列表

24 - name: string #埠號名稱

25 containerport: int #容器需要監聽的埠號

26 hostport: int #容器所在主機需要監聽的埠號,預設與container相同

27 protocol: string #埠協議,支援tcp和udp,預設tcp

28 env: #容器執行前需設定的環境變數列表

29 - name: string #環境變數名稱

30 value: string #環境變數的值

31 resources: #資源限制和請求的設定

32 limits: #資源限制的設定

33 cpu: string #cpu的限制,單位為core數,將用於docker run --cpu-shares引數

34 memory: string #記憶體限制,單位可以為mib/gib,將用於docker run --memory引數

35 requests: #資源請求的設定

36 cpu: string #cpu請求,容器啟動的初始可用數量

37 memory: string #記憶體清楚,容器啟動的初始可用數量

38 livenessprobe: #對pod內個容器健康檢查的設定,當探測無響應幾次後將自動重啟該容器,檢查方法有exec、httpget和tcpsocket,對乙個容器只需設定其中一種方法即可

39 exec: #對pod容器內檢查方式設定為exec方式

40 command: [string] #exec方式需要制定的命令或指令碼

41 httpget: #對pod內個容器健康檢查方法設定為httpget,需要制定path、port

49 tcpsocket: #對pod內個容器健康檢查方式設定為tcpsocket方式

50 port: number

51 initialdelayseconds: 0 #容器啟動完成後首次探測的時間,單位為秒

52 timeoutseconds: 0 #對容器健康檢查探測等待響應的超時時間,單位秒,預設1秒

53 periodseconds: 0 #對容器監控檢查的定期探測時間設定,單位秒,預設10秒一次

54 successthreshold: 0

55 failurethreshold: 0

56 securitycontext:

57 privileged:false

58 restartpolicy: [always | never | onfailure]#pod的重啟策略,always表示一旦不管以何種方式終止執行,kubelet都將重啟,onfailure表示只有pod以非0退出碼退出才重啟,nerver表示不再重啟該pod

59 nodeselector: obeject #設定nodeselector表示將該pod排程到包含這個label的node上,以key:value的格式指定

60 imagepullsecrets: #pull映象時使用的secret名稱,以key:secretkey格式指定

61 - name: string

62 hostnetwork:false #是否使用主機網路模式,預設為false,如果設定為true,表示使用宿主機網路

63 volumes: #在該pod上定義共享儲存卷列表

64 - name: string #共享儲存卷名稱 (volumes型別有很多種)

65 emptydir: {} #型別為emtydir的儲存卷,與pod同生命週期的乙個臨時目錄。為空值

66 hostpath: string #型別為hostpath的儲存卷,表示掛載pod所在宿主機的目錄

67 path: string #pod所在宿主機的目錄,將被用於同期中mount的目錄

68 secret: #型別為secret的儲存卷,掛載集群與定義的secre物件到容器內部

69 scretname: string

70 items:

71 - key: string

72 path: string

73 configmap: #型別為configmap的儲存卷,掛載預定義的configmap物件到容器內部

74 name: string

75 items:

76 - key: string

77 path: string

K8S 服務編排YAML

yaml 是一種簡潔的非標記語言。語法格式 在k8s部署乙個應用的yaml內容大致分為兩部分 控制器定義 定義控制器屬性 被控制物件 pod模板,定義容器屬性 具體字段意義 apiversion api版本 kind 資源型別 metadata 資源元資料 spec 資源規格 replicas 副本...

k8s中的yaml檔案詳解

yaml格式的pod定義檔案完整內容 apiversion v1 必選,版本號,例如v1 kind pod 必選,pod metadata 必選,元資料 name string 必選,pod名稱 namespace string 必選,pod所屬的命名空間 labels 自定義標籤 name str...

k8s中yaml檔案的詳解

yaml格式的pod定義檔案完整內容 apiversion v1 必選,版本號,例如v1 kind pod 必選,pod metadata 必選,元資料 name string 必選,pod名稱 namespace string 必選,pod所屬的命名空間 labels 自定義標籤 name str...