开发者社区> 问答> 正文

kubectl apply --dry-run表现得很奇怪

我正面临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

展开
收起
k8s小能手 2019-01-11 11:31:18 6616 0
1 条回答
写回答
取消 提交回答
  • 整合最优质的专家资源和技术资料,问答解疑

    更新现有对象时,kubectl apply不会发送整个对象,只发送补丁。在干运行模式下打印现有对象或新对象并不完全正确...合并的结果是应该打印的结果。

    为了使kubectl能够准确地反映apply的结果,它需要服务器端应用逻辑客户端,这是一个非目标。

    目前的努力是针对将应用逻辑移动到服务器。作为其中的一部分,增加了干服务器端的能力。kubectl apply --server-dry-run将执行您想要的操作,打印apply merge的结果,而不实际持久化。
    应该更新标志帮助申请并在使用--dry-run更新对象时通过应用来记录--dry-run的限制并指示人们使用--server-dry-跑

    2019-07-17 23:25:15
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载