【发布时间】:2022-06-22 20:45:15
【问题描述】:
如何使用 kubectl(无文本编辑器)更改 kube 配置文件中用户的name?
示例 kube 配置文件stage_config.yaml:
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: REDACTED
server: https://127.0.0.1:6443
name: cluster.local
contexts:
- context:
cluster: cluster.local
user: kubernetes-admin
name: kubernetes-admin@cluster.local
current-context: kubernetes-admin@cluster.local
kind: Config
preferences: {}
users:
- name: kubernetes-admin
user:
client-certificate-data: REDACTED
client-key-data: REDACTED
我想做kubectl config rename-user --kubeconfig ~/.kube/stage_config.yaml kubernetes-admin kubernetes-admin-1之类的事情
输出如下:
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: REDACTED
server: https://127.0.0.1:6443
name: cluster.local
contexts:
- context:
cluster: cluster.local
user: kubernetes-admin
name: kubernetes-admin@cluster.local
current-context: kubernetes-admin@cluster.local
kind: Config
preferences: {}
users:
- name: kubernetes-admin-1
user:
client-certificate-data: REDACTED
client-key-data: REDACTED
我已尝试kubectl config set,但收到以下错误:
kubectl config set --kubeconfig ~/.kube/stage_config.yaml users.name.kubernetes-admin kubernetes-admin-1
error: can't set a map to a value: map[kubernetes-admin:0xc000c53100]
kubectl config --help 表明存在rename-context 命令,但不存在类似rename-user 和rename-cluster 的命令。
【问题讨论】:
-
证书映射到
CN/common name.我认为重命名用户名可能不是最好的做法。但是请考虑在security.stackexchange.com 中提出这个问题以获得更权威的答案。但是如果你真的想这样做,你可能需要使用像sed这样的命令来做到这一点。
标签: kubernetes kubectl kubeconfig