问题描述
我有aws-eks集群,下面是替换现有配置的命令。
kubectl create configmap flink-config --from-file=./config -o yaml --dry-run | kubectl replace -
但是当我运行此命令时。它给出了类似的错误
W1009 17:00:14.998329 323115 helpers.go:553] --dry-run is deprecated and can be replaced with --dry-run=client.
如果我将-dry-run替换为-dry-run = client,会做同样的事情吗?
解决方法
关于我们学习的dry-run=client
--dry-run=client
标志可预览将发送到的对象 您的集群,而无需真正提交。
在kubernetes API参考中,我们读到:
必须为“ none”,“ server”或“ client”。如果采用客户策略,则仅打印 将发送而不发送的对象。如果采用服务器策略, 提交服务器端请求而不保留资源。
执行本地测试,我意识到当我尝试使用dry-run=server
替换现有的配置对象时,会发生以下错误。 apiserver告诉我们,已经存在一个名为flink-config
的configmap。
kubectl create configmap flink-config --from-file=./config -o yaml --dry-run=server
Error from server (AlreadyExists): configmaps "flink-config" already exists
但是我尝试使用dry-run=client
的对象不是由apiserver验证的,也就是说,仅仅是由客户端验证的,因此Yaml会打印给我们:
kubectl create configmap flink-config --from-file=./config -o yaml --dry-run=client
apiVersion: v1
data:
config: |
FOO: foo
MYVAR: hello
kind: ConfigMap
metadata:
creationTimestamp: null
name: flink-config
因此,基本上,是的,dry-run=client
与已弃用的dry-run
具有相同的效果。 dry-run=server
的等效标志为--server-dry-run
,在v1.18中已弃用。