您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(guān)K8S中yaml文件的作用是什么,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
先提供個(gè)完整的定義案例
apiVersion: v1 #必選,版本號(hào),例如v1,版本號(hào)必須可以用 kubectl api-versions 查詢到 . kind: Pod #必選,Pod metadata: #必選,元數(shù)據(jù) name: string #必選,Pod名稱 namespace: string #必選,Pod所屬的命名空間,默認(rèn)為"default" labels: #自定義標(biāo)簽 - name: string #自定義標(biāo)簽名字 annotations: #自定義注釋列表 - name: string spec: #必選,Pod中容器的詳細(xì)定義 containers: #必選,Pod中容器列表 - name: string #必選,容器名稱,需符合RFC 1035規(guī)范 image: string #必選,容器的鏡像名稱 imagePullPolicy: [ Always|Never|IfNotPresent ] #獲取鏡像的策略 Alawys表示下載鏡像 IfnotPresent表示優(yōu)先使用本地鏡像,否則下載鏡像,Nerver表示僅使用本地鏡像 command: [string] #容器的啟動(dòng)命令列表,如不指定,使用打包時(shí)使用的啟動(dòng)命令 args: [string] #容器的啟動(dòng)命令參數(shù)列表 workingDir: string #容器的工作目錄 volumeMounts: #掛載到容器內(nèi)部的存儲(chǔ)卷配置 - name: string #引用pod定義的共享存儲(chǔ)卷的名稱,需用volumes[]部分定義的的卷名 mountPath: string #存儲(chǔ)卷在容器內(nèi)mount的絕對(duì)路徑,應(yīng)少于512字符 readOnly: boolean #是否為只讀模式 ports: #需要暴露的端口庫號(hào)列表 - name: string #端口的名稱 containerPort: int #容器需要監(jiān)聽的端口號(hào) hostPort: int #容器所在主機(jī)需要監(jiān)聽的端口號(hào),默認(rèn)與Container相同 protocol: string #端口協(xié)議,支持TCP和UDP,默認(rèn)TCP env: #容器運(yùn)行前需設(shè)置的環(huán)境變量列表 - name: string #環(huán)境變量名稱 value: string #環(huán)境變量的值 resources: #資源限制和請(qǐng)求的設(shè)置 limits: #資源限制的設(shè)置 cpu: string #Cpu的限制,單位為core數(shù),將用于docker run --cpu-shares參數(shù) memory: string #內(nèi)存限制,單位可以為Mib/Gib,將用于docker run --memory參數(shù) requests: #資源請(qǐng)求的設(shè)置 cpu: string #Cpu請(qǐng)求,容器啟動(dòng)的初始可用數(shù)量 memory: string #內(nèi)存請(qǐng)求,容器啟動(dòng)的初始可用數(shù)量 livenessProbe: #對(duì)Pod內(nèi)各容器健康檢查的設(shè)置,當(dāng)探測(cè)無響應(yīng)幾次后將自動(dòng)重啟該容器,檢查方法有exec、httpGet和tcpSocket,對(duì)一個(gè)容器只需設(shè)置其中一種方法即可 exec: #對(duì)Pod容器內(nèi)檢查方式設(shè)置為exec方式 command: [string] #exec方式需要制定的命令或腳本 httpGet: #對(duì)Pod內(nèi)個(gè)容器健康檢查方法設(shè)置為HttpGet,需要制定Path、port path: string port: number host: string scheme: string HttpHeaders: - name: string value: string tcpSocket: #對(duì)Pod內(nèi)個(gè)容器健康檢查方式設(shè)置為tcpSocket方式 port: number initialDelaySeconds: 0 #容器啟動(dòng)完成后首次探測(cè)的時(shí)間,單位為秒 timeoutSeconds: 0 #對(duì)容器健康檢查探測(cè)等待響應(yīng)的超時(shí)時(shí)間,單位秒,默認(rèn)1秒 periodSeconds: 0 #對(duì)容器監(jiān)控檢查的定期探測(cè)時(shí)間設(shè)置,單位秒,默認(rèn)10秒一次 successThreshold: 0 failureThreshold: 0 securityContext: privileged: false restartPolicy: [Always | Never | OnFailure] #Pod的重啟策略,Always表示一旦不管以何種方式終止運(yùn)行,kubelet都將重啟,OnFailure表示只有Pod以非0退出碼退出才重啟,Nerver表示不再重啟該P(yáng)od nodeSelector: obeject #設(shè)置NodeSelector表示將該P(yáng)od調(diào)度到包含這個(gè)label的node上,以key:value的格式指定 imagePullSecrets: #Pull鏡像時(shí)使用的secret名稱,以key:secretkey格式指定 - name: string hostNetwork: false #是否使用主機(jī)網(wǎng)絡(luò)模式,默認(rèn)為false,如果設(shè)置為true,表示使用宿主機(jī)網(wǎng)絡(luò) volumes: #在該pod上定義共享存儲(chǔ)卷列表 - name: string #共享存儲(chǔ)卷名稱 (volumes類型有很多種) emptyDir: {} #類型為emtyDir的存儲(chǔ)卷,與Pod同生命周期的一個(gè)臨時(shí)目錄。為空值 hostPath: string #類型為hostPath的存儲(chǔ)卷,表示掛載Pod所在宿主機(jī)的目錄 path: string #Pod所在宿主機(jī)的目錄,將被用于同期中mount的目錄 secret: #類型為secret的存儲(chǔ)卷,掛載集群與定義的secre對(duì)象到容器內(nèi)部 scretname: string items: - key: string path: string configMap: #類型為configMap的存儲(chǔ)卷,掛載預(yù)定義的configMap對(duì)象到容器內(nèi)部 name: string items: - key: string path: string
Deployment API 版本對(duì)照表
Kubernetes 版本 | Deployment 版本 |
---|---|
v1.5-v1.15 | extensions/v1beta1 |
v1.7-v1.15 | apps/v1beta1 |
v1.8-v1.15 | apps/v1beta2 |
v1.9+ | apps/v1 |
看完上述內(nèi)容,你們對(duì)K8S中yaml文件的作用是什么有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。