kubectl create 与 kubectl apply的区别
kubectl create 与 kubectl apply 的区别_cab5的博客-CSDN博客
一、背景
在我们想要创建一个K8s资源的时候,既可以使用 create,又可以使用 apply,两者之间到底有什么不同呢?
二、区别
kubectl create
create 顾名思义就是创建新资源。这里我们需要注意的是,如果再次运行相同的命令,就会抛出错误,因为资源名称在名称空间中应该是唯一的。
第 1 次执行 kubectl create -f pod.xml 命令,正常结束,如下:
kubectl create -f pod.xml
pod/my-pod created
第 2 次执行 kubectl create -f pod.xml 命令,抛出错误,如下:
kubectl create -f pod.xml
Error from server (AlreadyExists): error when creating “pod.xml”: pods “my-pod” already exists
kubectl apply
使配置在资源上生效。 这里分为两种情况,如下:
-
资源本不存在:
创建新资源。
-
资源已存在:
使配置在已存在的资源上生效(也就是更新资源的配置)。若配置没变化,则对应的资源也不会有什么改变。
第 1 次执行 kubectl apply -f pod.xml 命令,显示 created,如下:
kubectl apply -f pod.xml
pod/my-pod created
第 2 次执行 kubectl apply -f pod.xml 命令,由于配置没改变,则显示 unchanged ,如下:
kubectl apply -f pod.xml
pod/my-pod unchanged