gpt4 book ai didi

shell - 如何从 shell 脚本编辑 kubernetes 资源

转载 作者:行者123 更新时间:2023-12-02 05:11:25 25 4
gpt4 key购买 nike

我浏览了文档,使用 kubectl edit 编辑 kubernetes 资源命令。执行命令后,YAML 格式的文件将在编辑器中打开,我可以在其中根据要求更改值并保存。我试图通过 sed 来执行这些步骤。如何实现以下步骤?

  1. 对部署资源执行 kubectl edit
  2. 将值从 true 设置为 false(使用 sed)
  3. 保存更改

我尝试通过以下方式实现这一目标:

$ kubectl edit deployment tiller-deploy -n kube-system | \
sed -i "s/\(automountServiceAccountToken:.*$\)/automountServiceAccountToken: true/g"`

最佳答案

您的命令缺少反引号。但即使你把它放在那里,它也不会起作用。原因是因为当您执行 kubectl edit ... 时,它会在 vim 上编辑文件。我不确定 sed 是否可以在 vim 上工作。即使是这样,输出也会发送到一个文件,因此您会收到 Vim: warning: Output is not to aterminal 错误,我不知道如何解决。

我建议您获取该文件并保存它。替换所需的参数并再次运行:

kubectl get deploy tiller-deploy -n kube-system -o yaml > tiller.yaml && sed -i "s/automountServiceAccountToken:.*$/automountServiceAccountToken: true/g" tiller.yaml && kubectl replace -f tiller.yaml

我尝试了上面的命令,它成功了。

注意:无需添加 -n kube-system,因为 yaml 文件已包含命名空间。

关于shell - 如何从 shell 脚本编辑 kubernetes 资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50227596/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com