我对文档的理解是:
如果我要执行创建+替换
资源替换=更新实时()中的资源应用=
我的问题是
发布于 2019-01-18 14:27:01
在CI脚本中运行时,您在使用命令式命令时会遇到问题,因为如果资源已经存在,create将引发错误。
您可以使用--dry-run=true和-o yaml选项对命令性命令的输出应用(声明性模式):
kubectl create whatever --dry-run=true -o yaml | kubectl apply -f -如果资源已经存在,则上面的命令不会引发错误(并将在需要时更新资源)。
这在某些不能使用声明性模式的情况下非常有用(例如,在创建docker-registry secret时)。
发布于 2020-07-19 02:03:02
对于初学者来说,这是最好的理解差异的方法。

编辑
有错误是在图片中提到的例子。为了更好的理解,请参考评论。
你也可以参考下面的例子。
命令式:
准备好
声明性:
从K8s的角度来看:
命令式:您必须自己管理不同的资源,如pods、服务、副本集等。
声明式: K8会处理所有的资源,你需要做的就是指定你的实际需求。
发布于 2019-09-24 16:50:07
以下是命令式命令:
kubectl run = kubectl create deployment
优势:
缺点:
这些是命令式对象配置
kubectl create -f your-object-config.yaml
kubectl delete -f your-object-config.yaml
kubectl replace -f your-object-config.yaml
与命令式命令相比的优点:
与命令式命令相比的缺点:
与声明性对象配置相比的优点:
在Kubernetes understand.
与声明性对象配置相比的缺点:
在文件而不是directories.
期间丢失
这些是声明性对象配置
kubectl diff -f configs/
kubectl apply -f configs/
与命令式对象配置相比的优势:
直接对活动对象所做的
与命令式对象配置相比的缺点:
当unexpected.
https://stackoverflow.com/questions/47369351
复制相似问题