kubectl apply --dry-run表现得很奇怪-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

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

k8s小能手 2019-01-11 11:31:18 2123

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

应用服务中间件 nginx
分享到
取消 提交回答
全部回答(1)
  • k8s小能手
    2019-07-17 23:25:15

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

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

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

    0 0
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题
推荐课程