我正面临kubectl和--dry-run的奇怪行为。
为了简化,我们说我有以下yaml文件:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
run: nginx
name: nginx
spec:
replicas: 3
selector:
matchLabels:
run: nginx
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
creationTimestamp: null
labels:
run: nginx
spec:
containers:
- image: nginxsdf
imagePullPolicy: Always
name: nginx
修改例如图像或副本数量:
kubectl apply -f Deployment.yaml -o yaml --dry-run输出具有OLD规格的资源
kubectl apply -f Deployment.yaml -o yaml输出具有新规格的资源
根据文件:
--dry-run = false:如果为true,则仅打印将要发送的对象,而不发送它。
但是,打印的对象是旧对象,而不是将要发送到ApiServer的对象
在minikube上测试,gke v1.10.0
更新现有对象时,kubectl apply不会发送整个对象,只发送补丁。在干运行模式下打印现有对象或新对象并不完全正确...合并的结果是应该打印的结果。
为了使kubectl能够准确地反映apply的结果,它需要服务器端应用逻辑客户端,这是一个非目标。
目前的努力是针对将应用逻辑移动到服务器。作为其中的一部分,增加了干服务器端的能力。kubectl apply --server-dry-run将执行您想要的操作,打印apply merge的结果,而不实际持久化。
应该更新标志帮助申请并在使用--dry-run更新对象时通过应用来记录--dry-run的限制并指示人们使用--server-dry-跑
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。