溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Kubernetes對象的規(guī)約和狀態(tài)

發(fā)布時間:2021-09-17 14:58:47 來源:億速云 閱讀:137 作者:chen 欄目:云計(jì)算

這篇文章主要講解了“ Kubernetes對象的規(guī)約和狀態(tài)”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“ Kubernetes對象的規(guī)約和狀態(tài)”吧!

 對象規(guī)約(Spec) 和狀態(tài)(Status)

每個Kubernetes對象都包含兩個嵌套的對象字段,它們控制對象的配置:對象規(guī)范(spec)和對象狀態(tài)(status)。 spec是必須字段,它描述了對象的所需狀態(tài)以及您希望對象具有的特性。 status描述對象的實(shí)際狀態(tài),并由Kubernetes系統(tǒng)提供和更新。 在任何給定時間,Kubernetes控制面板都會持續(xù)地管理對象的實(shí)際狀態(tài),以匹配您提供的所需狀態(tài)。

例如, Kubernetes Deployment 是一個對象,它表示在集群上運(yùn)行的應(yīng)用程序。 創(chuàng)建部署時,可以設(shè)置部署規(guī)約,以指定希望運(yùn)行應(yīng)用程序的三個副本。 Kubernetes系統(tǒng)讀取部署規(guī)約并啟動所期望的應(yīng)用程序的三個實(shí)例,更新狀態(tài)到與規(guī)約相匹配的情況。 如果這些實(shí)例中的任何一個失敗(狀態(tài)更改),Kubernetes系統(tǒng)將通過在本例中進(jìn)行糾正(啟動替換實(shí)例)來響應(yīng)spec和狀態(tài)之間的差異 。

關(guān)于對象 spec、status 和 metadata 的更多信息,查看 Kubernetes API 約定。

描述一個Kubernetes對象

在Kubernetes中創(chuàng)建對象時,必須提供描述其所需狀態(tài)的對象規(guī)約,以及關(guān)于該對象的一些基本信息(例如名稱)。 當(dāng)使用Kubernetes API創(chuàng)建對象時(直接或通過kubectl),該API請求的請求體中必須包含有JSON格式的信息。 通常,都在.yaml文件中向kubectl提供信息。 kubectl在發(fā)出API請求時將信息轉(zhuǎn)換為JSON。

下面是一個.yaml文件示例,它顯示了Kubernetes部署所需的字段和對象規(guī)約:

application/deployment.yaml Kubernetes對象的規(guī)約和狀態(tài)
apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2kind: Deploymentmetadata:  name: nginx-deploymentspec:  selector:    matchLabels:      app: nginx  replicas: 2 # tells deployment to run 2 pods matching the template  template:    metadata:      labels:        app: nginx    spec:      containers:      - name: nginx        image: nginx:1.7.9        ports:        - containerPort: 80


使用類似于上面的.yaml文件創(chuàng)建部署的一種方法是在kubectl命令行界面中使用kubectl apply命令,將.yaml文件作為參數(shù)傳遞。  如下示例:

kubectl apply -f https://k8s.io/examples/application/deployment.yaml --record

輸出如下類似結(jié)果:

deployment.apps/nginx-deployment created

在要創(chuàng)建的Kubernetes對象的.yaml文件中,需要為以下字段設(shè)置值 :

  • apiVersion - 創(chuàng)建這個對象所使用的Kubernetes API版本

  • kind - 創(chuàng)建這個對象的類型

  • metadata - 幫助惟一標(biāo)識對象的數(shù)據(jù),包括 name字符串、UID和可選的 namespace

還需要提供對象的spec字段。 對象spec的精確格式對于每個Kubernetes對象都是不同的,并且包含特定于該對象的嵌套字段。 Kubernetes API引用可以幫助您找到使用Kubernetes創(chuàng)建的所有對象的 spec格式。 例如, Pod 對象的 spec 格式可以在這里找到, Deployment 對象的 spec 格式可以在這里找到。

感謝各位的閱讀,以上就是“ Kubernetes對象的規(guī)約和狀態(tài)”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對 Kubernetes對象的規(guī)約和狀態(tài)這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI