deployment.yaml 關(guān)鍵字

Deployment yaml文件包含四個部分:

apiVersion: 表示版本

kind: 表示資源

metadata: 表示元信息

spec: 資源規(guī)范字段


apiVersion: apps/v1 # 指定api版本

kind: Deployment? # 指定創(chuàng)建資源的角色/類型?

metadata:? # 資源的元數(shù)據(jù)/屬性

? name: demo? # 資源的名字,在同一個namespace中必須唯一

? namespace: default # 部署在哪個namespace中

? labels:? # 設(shè)定資源的標(biāo)簽

? ? app: demo

? ? version: stable

spec: # 資源規(guī)范字段

? replicas: 1 # 聲明副本數(shù)目

? revisionHistoryLimit: 3 # 保留歷史版本

? selector: # 選擇器

? ? matchLabels: # 匹配標(biāo)簽

? ? ? app: demo

? ? ? version: stable

? strategy: # 策略

? ? rollingUpdate: # 滾動更新

? ? ? maxSurge: 30% # 最大額外可以存在的副本數(shù),可以為百分比,也可以為整數(shù)

? ? ? maxUnavailable: 30% # 示在更新過程中能夠進(jìn)入不可用狀態(tài)的 Pod 的最大值,可以為百分比,也可以為整數(shù)

? ? type: RollingUpdate # 滾動更新策略

? template: # 模版

? ? metadata: # 資源的元數(shù)據(jù)/屬性

? ? ? annotations: # 自定義注解列表

? ? ? ? sidecar.istio.io/inject: "false" # 自定義注解名字

? ? ? labels: # 設(shè)定資源的標(biāo)簽

? ? ? ? app: demo

? ? ? ? version: stable

? ? spec: # 資源規(guī)范字段

? ? ? containers:

? ? ? - name: demo # 容器的名字?

? ? ? ? image: demo:v1 # 容器使用的鏡像地址?

? ? ? ? imagePullPolicy: IfNotPresent # 每次Pod啟動拉取鏡像策略,三個選擇 Always、Never、IfNotPresent

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? # Always,每次都檢查;Never,每次都不檢查(不管本地是否有);IfNotPresent,如果本地有就不檢查,如果沒有就拉取

? ? ? ? resources: # 資源管理

? ? ? ? ? limits: # 最大使用

? ? ? ? ? ? cpu: 300m # CPU,1核心 = 1000m

? ? ? ? ? ? memory: 500Mi # 內(nèi)存,1G = 1024Mi

? ? ? ? ? requests:? # 容器運行時,最低資源需求,也就是說最少需要多少資源容器才能正常運行

? ? ? ? ? ? cpu: 100m

? ? ? ? ? ? memory: 100Mi

? ? ? ? livenessProbe: # pod 內(nèi)部健康檢查的設(shè)置

? ? ? ? ? httpGet: # 通過httpget檢查健康,返回200-399之間,則認(rèn)為容器正常

? ? ? ? ? ? path: /healthCheck # URI地址

? ? ? ? ? ? port: 8080 # 端口

? ? ? ? ? ? scheme: HTTP # 協(xié)議

? ? ? ? ? ? # host: 127.0.0.1 # 主機地址

? ? ? ? ? initialDelaySeconds: 30 # 表明第一次檢測在容器啟動后多長時間后開始

? ? ? ? ? timeoutSeconds: 5 # 檢測的超時時間

? ? ? ? ? periodSeconds: 30 # 檢查間隔時間

? ? ? ? ? successThreshold: 1 # 成功門檻

? ? ? ? ? failureThreshold: 5 # 失敗門檻,連接失敗5次,pod殺掉,重啟一個新的pod

? ? ? ? readinessProbe: # Pod 準(zhǔn)備服務(wù)健康檢查設(shè)置

? ? ? ? ? httpGet:

? ? ? ? ? ? path: /healthCheck

? ? ? ? ? ? port: 8080

? ? ? ? ? ? scheme: HTTP

? ? ? ? ? initialDelaySeconds: 30

? ? ? ? ? timeoutSeconds: 5

? ? ? ? ? periodSeconds: 10

? ? ? ? ? successThreshold: 1

? ? ? ? ? failureThreshold: 5

? ? ? ? #也可以用這種方法?

? ? ? ? #exec: 執(zhí)行命令的方法進(jìn)行監(jiān)測,如果其退出碼不為0,則認(rèn)為容器正常?

? ? ? ? #? command:?

? ? ? ? #? ? - cat?

? ? ? ? #? ? - /tmp/health?

? ? ? ? #也可以用這種方法?

? ? ? ? #tcpSocket: # 通過tcpSocket檢查健康?

? ? ? ? #? port: number

? ? ? ? ports:

? ? ? ? ? - name: http # 名稱

? ? ? ? ? ? containerPort: 8080 # 容器開發(fā)對外的端口

? ? ? ? ? ? protocol: TCP # 協(xié)議

? ? ? imagePullSecrets: # 鏡像倉庫拉取密鑰

? ? ? ? - name: harbor-certification

? ? ? affinity: # 親和性調(diào)試

? ? ? ? nodeAffinity: # 節(jié)點親和力

? ? ? ? ? requiredDuringSchedulingIgnoredDuringExecution: # pod 必須部署到滿足條件的節(jié)點上

? ? ? ? ? ? nodeSelectorTerms: # 節(jié)點滿足任何一個條件就可以

? ? ? ? ? ? - matchExpressions: # 有多個選項,則只有同時滿足這些邏輯選項的節(jié)點才能運行 pod

? ? ? ? ? ? ? - key: beta.kubernetes.io/arch

? ? ? ? ? ? ? ? operator: In

? ? ? ? ? ? ? ? values:

? ? ? ? ? ? ? ? - amd64

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • apiVersion: apps/v1 # 指定api版本,此值必須在kubectl api-versions中...
    龐志輝信德it閱讀 153評論 0 0
  • kubectl explain pods #詳細(xì)POD參數(shù) vi pod-demo.yaml apiVersion...
    仙凡閱讀 457評論 0 0
  • API server 接受和返回的所有 JSON 對象都遵循同一個模式,它們都具有 "kind" 和 "apiVe...
    強出頭閱讀 1,568評論 0 0
  • pod資源標(biāo)簽使用技巧 在k8s之上,每一種資源都可以有一個標(biāo)簽,現(xiàn)實中用到的pod數(shù)量可能越來越多,我們期望能夠...
    菜頭_355f閱讀 559評論 0 3
  • Deployment官方文檔: https://kubernetes.io/docs/concepts/workl...
    菜頭_355f閱讀 2,715評論 0 1

友情鏈接更多精彩內(nèi)容