kubectl命令文档:
https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#create
-
声明式和命令式
从声明式和命令式来划分的话,kubectl create
是属于命令式,即就是要create 某API对象,但kubectl apply
是声明式,只是声明了一个yaml文件,只要达到期望的状态就行,并不指定具体做什么操作。 -
区别
kubectl create
用于创建一个新的资源,如果该资源已经存在,则会返回错误。
kubectl apply
用于创建或更新一个资源,如果该资源不存在,则会创建;如果该资源已存在,则会对其进行更新。 -
场景
kubectl create -f
适用于初始化资源对象的场景;而kubectl apply -f
则更加适合更新和修改已有的资源对象,因为它会对比新的 YAML 配置文件和已有的资源对象配置,只更新需要更新的部分,而不会覆盖已有的全部配置note:使用create apply 更加灵活,可以根据配置文件如果不存在则创建,如果存在则更新。