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 操作。