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