1. 程式人生 > >YAML配置檔案管理資源

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
  namespacedefault
  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來建立資源。(服務釋出的檔案同樣執行一下)