Kubernetes 理解 Kubernetes 物件
什么是 Kubernetes 物件
在 Kubernetes 系統中,Kubernetes 物件是持久化的物體,Kubernetes 使用這些物體去表示整個集群的狀態,
Kubernetes 物件描述了如下資訊:
- 哪些容器化應用正在運行(以及在哪些節點上運行)
- 可以被應用使用的資源
- 關于應用運行時表現的策略,比如重啟策略、升級策略以及容錯策略
Kubernetes 目標性記錄
Kubernetes 物件是"目標性記錄",一旦創建該物件,Kubernetes 系統將不斷作業以確保該物件存在,
Kubernetes 集群的期望狀態
通過創建物件,你就是在告知 Kubernetes 系統,你想要的集群作業負載狀態看起來應是什么樣子的,這就是 Kubernetes 集群所謂的期望狀態(Desired State),
如何操作 Kubernetes 物件
無論是創建、修改或者洗掉,都需要使用 Kubernetes API,比如,當使用 kubectl 命令列介面(CLI)時,CLI 會呼叫必要的 Kubernetes API;也可以在程式中使用客戶端庫,來直接呼叫 Kubernetes API,
物件規約(Spec)與狀態(Status)
必須在創建物件時設定 spec,描述你希望物件所具有的特征:期望狀態(Desired State),
status 描述了物件的當前狀態(Current State),它是由 Kubernetes 系統和組件設定并更新的,
在任何時刻,Kubernetes 控制平面都一直都在積極地管理著物件的實際狀態,以使之達成期望狀態,
如何描述 Kubernetes 物件
創建 Kubernetes 物件時,必須提供物件的 spec,用來描述該物件的期望狀態,以及關于物件的一些基本資訊(例如名稱),
這里有一個 .yaml 示例檔案,展示了如何用 Kubernetes 部署 nginx:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
selector:
matchLabels:
app: nginx
replicas: 2 # 告知 Deployment 運行 2 個與該模板匹配的 Pod
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
然后通過 kubectl 命令列介面(CLI)的 apply 命令,可以部署 nginx:
kubectl apply -f https://k8s.io/examples/application/deployment.yaml
yaml 必須欄位
在想要創建的 Kubernetes 物件所對應的 .yaml 檔案中,需要配置的欄位如下:
- apiVersion:創建該物件所使用的 Kubernetes API 的版本
- kind:想要創建的物件的類別
- metadata:幫助唯一標識物件的一些資料,包括一個 name 字串、UID 和可選的 namespace
- spec:你所期望的該物件的狀態
參考資料
- kubernetes.io 官方檔案:理解 Kubernetes 物件
思維導圖

B站學習
從零開始學習k8s:理解k8s物件

抖音學習

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/502145.html
標籤:其他
下一篇:第二講 Python編程基礎
