k8s中yaml檔案的詳解

2021-09-16 13:32:50 字數 3127 閱讀 3985

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

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

kind: pod #必選,pod

metadata: #必選,元資料

name: string #必選,pod名稱

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

labels: #自定義標籤

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

annotations: #自定義注釋列表

- name: string

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

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

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

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

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,預設tcp

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

- 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 #記憶體清楚,容器啟動的初始可用數量

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

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

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

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

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

port: number

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

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

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

successthreshold: 0

failurethreshold: 0

securitycontext:

privileged:false

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

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

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

- name: string

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

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

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

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

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

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

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

scretname: string

items:

- key: string

path: string

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

name: string

items:

- key: string

path: string

k8s中的yaml檔案詳解

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

K8S容器編排YAML詳解

k8s 集群中對資源管理和資源物件編排部署都可以通過宣告樣式 yaml 檔案來解決,也就是可以把需要對資源物件操作編輯到yaml格式檔案中,一般使用 yaml 格式的檔案來建立符合我們預期期望的 pod 我們把這種檔案叫做資源清單檔案,通過 kubectl 命令直接使用資源清單檔案就可以實現對大量的...

K8S 服務編排YAML

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