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. 资源本不存在:

    创建新资源。

  2. 资源已存在:

    使配置在已存在的资源上生效(也就是更新资源的配置)。若配置没变化,则对应的资源也不会有什么改变。

第 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
 

posted on 2022-06-12 23:12  Colin88  阅读(338)  评论(0编辑  收藏  举报