我在命名空间中有一个配置映射my-config,需要制作一个副本(一些临时实验的一部分),但使用另一个名称,所以我最终得到:
my-config
my-config-copy
Run Code Online (Sandbox Code Playgroud)
我可以这样做:
kubectl get cm my-config -o yaml > my-config-copy.yaml
Run Code Online (Sandbox Code Playgroud)
手动编辑名称,然后:
kubectl create -f my-config-copy.yaml
Run Code Online (Sandbox Code Playgroud)
但是有没有一种方法可以在一行中自动完成呢?
我可以通过以下方式获得一些方法:
kubectl get cm my-config --export -o yaml | kubectl apply -f -
Run Code Online (Sandbox Code Playgroud)
但我缺少新名称的部分(因为名称是不可变的,我知道这不是标准行为)。
也最好不使用导出,因为:
标志 --export 已被弃用,此标志已被弃用,并将在将来删除。
有什么建议么?
您可以通过组合 kubectlpatch和apply函数来实现这一点。
kubectl patch cm source-cm -p '{"metadata":{ "name":"target-cm"}}' --dry-run=client -o yaml | kubectl apply -f -
Run Code Online (Sandbox Code Playgroud)
source-cm是target-cm配置映射名称
| 归档时间: |
|
| 查看次数: |
3960 次 |
| 最近记录: |