我有 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 参考中我们读到:
必须是“无”、“服务器”或“客户端”。如果是客户端策略,则仅打印 将发送的对象,而不发送它。如果服务器策略, 提交服务器端请求而不保留资源。
执行本地测试我意识到,当我尝试使用
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 中被弃用。