6

我有 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,它会做同样的事情吗?

4

1 回答 1

19

关于dry-run=client我们学习

--dry-run=client标记以预览将发送到您的集群的对象,而无需真正提交它。

在 kubernetes API 参考中,我们读到:

必须是“none”、“server”或“client”。如果是客户端策略,只打印要发送的对象,不发送。如果是服务器策略,则提交服务器端请求而不持久化资源。

执行本地测试时,我意识到当我尝试使用 替换现有配置对象dry-run=server时,会发生以下错误。apiserver 告诉我们已经存在一个名为 的配置映射flink-config

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它与 deprecated 具有相同的效果dry-run。在 v1.18 中,was的等效标志已dry-run=server--server-dry-run弃用。

于 2020-10-09T12:39:18.030 回答