Chr*_*erl 7 kubernetes kubectl
我想在我的集群中使用多个集群kubectl,因此我要么将所有内容放入一个配置中,要么将每个集群的一个配置文件添加到KUBECONFIGenv 变量中。没关系。
我现在的问题是,我的每个集群的用户都具有相同的用户名,但他们对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
Run Code Online (Sandbox Code Playgroud)
集群 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
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,在两个集群中都有一个具有名称的用户kubernetes-admin,但从上下文中不清楚是哪一个。也许还有另一种方法可以为其提供上下文使用的唯一标识符。
也许解决方案是显而易见的,但我还没有找到这种情况的任何例子。谢谢你的帮助。
小智 14
我的配置也有同样的问题,发现用户中的名称不是用于登录的用户名 - 它只是用于标识配置中的用户部分的名称。在您的情况下,仅使用证书密钥来了解您是谁。所以你可以使用:
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
Run Code Online (Sandbox Code Playgroud)
并在上下文中通过键引用它:
contexts:
- context:
cluster: dev-cluster
user: kubernetes-admin-1
Run Code Online (Sandbox Code Playgroud)
完整配置:
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
Run Code Online (Sandbox Code Playgroud)
对于需要用户名的身份验证方法,使用如下所示:
users:
- name: kubernetes-admin-with-password
user:
username: kubernetes-admin
password: mySecretPass
Run Code Online (Sandbox Code Playgroud)
使用多个 kubeconfig 不太舒服 - 您需要为每个命令指定它们。如果您想要在一个配置中并选择正确的上下文(并将选定的上下文保存为默认值),您可以拥有尽可能多的上下文和用户。
| 归档时间: |
|
| 查看次数: |
5981 次 |
| 最近记录: |