您好,登錄后才能下訂單哦!
這篇文章主要講解了“ Kubernetes對象的規約和狀態”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“ Kubernetes對象的規約和狀態”吧!
每個Kubernetes對象都包含兩個嵌套的對象字段,它們控制對象的配置:對象規范(spec)和對象狀態(status)。 spec是必須字段,它描述了對象的所需狀態以及您希望對象具有的特性。 status描述對象的實際狀態,并由Kubernetes系統提供和更新。 在任何給定時間,Kubernetes控制面板都會持續地管理對象的實際狀態,以匹配您提供的所需狀態。
例如, Kubernetes Deployment 是一個對象,它表示在集群上運行的應用程序。 創建部署時,可以設置部署規約,以指定希望運行應用程序的三個副本。 Kubernetes系統讀取部署規約并啟動所期望的應用程序的三個實例,更新狀態到與規約相匹配的情況。 如果這些實例中的任何一個失敗(狀態更改),Kubernetes系統將通過在本例中進行糾正(啟動替換實例)來響應spec和狀態之間的差異 。
關于對象 spec、status 和 metadata 的更多信息,查看 Kubernetes API 約定。
在Kubernetes中創建對象時,必須提供描述其所需狀態的對象規約,以及關于該對象的一些基本信息(例如名稱)。 當使用Kubernetes API創建對象時(直接或通過kubectl),該API請求的請求體中必須包含有JSON格式的信息。 通常,都在.yaml文件中向kubectl提供信息。 kubectl在發出API請求時將信息轉換為JSON。
下面是一個.yaml文件示例,它顯示了Kubernetes部署所需的字段和對象規約:
application/deployment.yaml |
---|
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文件創建部署的一種方法是在kubectl命令行界面中使用kubectl apply命令,將.yaml文件作為參數傳遞。 如下示例:
kubectl apply -f https://k8s.io/examples/application/deployment.yaml --record
輸出如下類似結果:
deployment.apps/nginx-deployment created
在要創建的Kubernetes對象的.yaml文件中,需要為以下字段設置值 :
apiVersion
- 創建這個對象所使用的Kubernetes API版本
kind
- 創建這個對象的類型
metadata
- 幫助惟一標識對象的數據,包括 name
字符串、UID和可選的 namespace
還需要提供對象的spec字段。 對象spec的精確格式對于每個Kubernetes對象都是不同的,并且包含特定于該對象的嵌套字段。 Kubernetes API引用可以幫助您找到使用Kubernetes創建的所有對象的 spec格式。 例如, Pod
對象的 spec
格式可以在這里找到, Deployment
對象的 spec
格式可以在這里找到。
感謝各位的閱讀,以上就是“ Kubernetes對象的規約和狀態”的內容了,經過本文的學習后,相信大家對 Kubernetes對象的規約和狀態這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。