YAML配置檔案管理資源
配置檔案說明
定義配置時,指定最新穩定版API;
API版本可以通過命令
kubectl api-versions
檢視到
配置檔案應該儲存在叢集之外的版本控制倉庫中。如果需要,可以快速回滾配置、重新建立和恢復;
例如git。
應該使用YAML格式編寫配置檔案,而不是JSON。儘管這些格式都可以使用,但YAML對使用者更加友好;
命令
kubectl get pod [pod name] -o json
可以看到json化的pod編排內容
可以將相關物件組合成單個檔案,通常會更容易管理;
不要沒必要的指定預設值,簡單和最小配置減少錯誤;
在註釋中說明一個物件描述更好維護。
和shell一樣,# 表示註釋。
基本格式
例如建立nginx-deployment.yaml
來編排nginx服務:
檔案內容
apiVersion: apps/v1beta2
kind: Deployment
metadata:
name: nginx-deployment
namespace:default
labels:
web:nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.10
ports:
- containerPort: 80
解釋
apiVersion: apps/v1beta2
:指定了api的版本,是通過kubectl api-versions
命令列出的。
kind: Deployment
:指定資源型別
metadata:
name: nginx-deployment
namespace:default
labels:
web:nginx
源資料部分,name指定了資源的名稱,namespace指定了命令空間(預設為default可以不指定),labels指定標籤
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.10
ports:
- containerPort: 80
控制器和容器的選項,replicas指定了副本數,selector表示選擇器,matchLabels表示控制器匹配pod的標籤。
template指定了建立pod的引數,其中metadata是元資料。spec是容器的選項,containers定義容器引數,name指定容器名稱,image指定使用的映象,containerPort指定容器埠。
服務釋出檔案
還需要建立一個nginx-service.yaml
檔案來發布服務(當然這兩個檔案也可以合併為一個檔案)
通過YAML檔案建立資源
通過命令kubectl create -f nginx-deployment.yaml
來建立資源。(服務釋出的檔案同樣執行一下)