kubectl create / replace 與kubectl apply 的區別
阿新 • • 發佈:2020-08-26
kubectl create / replace
以ngnix 的 nginx.yaml為例:
apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: selector: matchLabels: app: nginx replicas: 2 template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx ports: - containerPort: 80
使用 kubectl create 命令在 Kubernetes 裡建立這個 Deployment 物件:
kubectl create -f nginx.yaml
當我們想要修改映象的時候,除了使用kubectl edit /kubectl set image ,我們還可以使用修改nginx.yaml檔案。然後使用 kubectl replace 來觸發更新。
kubectl replace -f nginx.yaml
對於上面這種先 kubectl create,再 replace 的操作,我們稱為命令式配置檔案操作。
kubectl apply
我們還可以通過 kubectl apply 建立deployment
kubectl apply -f nginx.yaml
如果修改映象,我們只需要修改nginx.yaml檔案,然後執行
kubectl apply -f nginx.yaml
kubectl create / replace 與kubectl apply 的區別
- kubectl replace 的執行過程,是使用新的 YAML 檔案中的 API 物件,替換原有的 API 物件
- kubectl apply,則是執行了一個對原有 API 物件的 PATCH 操作。