kubernetes - 在 kubectl 配置中使用具有相同用户名的多个上下文
问题描述
我想使用多个集群,kubectl
所以我要么将所有内容放入一个配置中,要么将每个集群的一个配置文件添加到KUBECONFIG
env 变量中。没关系。
我现在的问题是,我的每个集群都有相同用户名的用户,但他们client-key-data
对每个集群(上下文)使用不同的用户名,但不知何故,上下文使用了该用户名,因此不清楚哪个用户属于哪个集群。
最好举个例子:
集群 1:
apiVersion: v1
kind: Config
clusters:
- cluster:
server: https://10.11.12.13:8888
name: team-cluster
contexts:
- context:
cluster: team-cluster
user: kubernetes-admin
name: kubernetes-admin@team-cluster
users:
- name: kubernetes-admin
user:
client-certificate-data: XXYYYZZZ
client-key-data: XXXYYYZZZ
集群 2:
apiVersion: v1
kind: Config
clusters:
- cluster:
server: https://10.11.12.14:8888
name: dev-cluster
contexts:
- context:
cluster: dev-cluster
user: kubernetes-admin
name: kubernetes-admin@dev-cluster
users:
- name: kubernetes-admin
user:
client-certificate-data: AABBCC
client-key-data: AABBCC
如您所见,在两个集群中都有一个具有名称的用户,kubernetes-admin
但从上下文中不清楚是哪一个。也许还有另一种方法可以给它一个上下文使用的唯一标识符。
也许解决方案是显而易见的,但我没有找到这种情况的任何例子。谢谢你的帮助。
解决方案
我的配置有同样的问题,发现用户中的名称不是用于登录的用户名 - 它只是用于识别配置中的用户部分的名称。在您的情况下,只有证书密钥用于知道您是谁。所以你可以使用:
users:
- name: kubernetes-admin-1
user:
client-certificate-data: AABBCC
client-key-data: AABBCC
- name: kubernetes-admin-2
user:
client-certificate-data: XXYYYZZZ
client-key-data: XXXYYYZZZ
并在上下文中按键引用:
contexts:
- context:
cluster: dev-cluster
user: kubernetes-admin-1
完整配置:
apiVersion: v1
kind: Config
clusters:
- cluster:
server: https://10.11.12.13:8888
name: team-cluster
- cluster:
server: https://10.11.12.14:8888
name: dev-cluster
contexts:
- context:
cluster: team-cluster
user: kubernetes-admin-1
name: kubernetes-admin@team-cluster
- context:
cluster: dev-cluster
user: kubernetes-admin-2
name: kubernetes-admin@dev-cluster
users:
- name: kubernetes-admin-1
user:
client-certificate-data: XXYYYZZZ
client-key-data: XXXYYYZZZ
- name: kubernetes-admin-2
user:
client-certificate-data: AABBCC
client-key-data: AABBCC
对于需要用户名的身份验证方法,它使用如下内容:
users:
- name: kubernetes-admin-with-password
user:
username: kubernetes-admin
password: mySecretPass
使用多个 kubeconfig 不太舒服 - 您需要为每个命令指定它们。如果您想在一个配置中选择正确的上下文(并将选定的上下文保存为默认值),您可以拥有尽可能多的上下文和用户。
推荐阅读
- python - 运行自动搜索时无法接收内容
- javascript - 按钮(回到底部)
- javascript - 使用 Keycloak 的 Cypress UI 自动登录失败
- reactjs - 我通过链接(react-router-dom)将道具传递给功能组件,但它说状态是“未定义”
- ios - 如何在不丢失精度的情况下将字符串格式化为十进制?
- xml - 在 Android Studio 中找不到要访问的声明
- android - 什么是 Android 11 的“/dev/null”等效项
- javascript - 'caller'、'callee' 和 'arguments' 属性可能无法在使用 Selenium 和 Python 的严格模式函数错误中访问
- c# - 如何使用 Interop.Word 向 docx 添加水平规则?
- robotframework - 通过蝗虫进行并行机器人框架测试