我现在正在测试角色差异,因此每个角色设置都有一个上下文。
终端会话 Admin ,我希望能够在一个会话中使用上下文Admin
,以便可以根据需要更新规则。
在终端会话 User 中,我希望能够通过其上下文测试该角色。
(注意:我在EKS上,因此角色映射到IAM角色)
答案 0 :(得分:2)
以下是管理多个kubectl
上下文的一些技巧:
asdf
管理多个kubectl
版本KUBECONFIG
环境变量可在多个kubeconfig
文件之间切换 kube-ps1
跟踪当前上下文/名称空间kubectx
and kubens
在群集/命名空间之间快速切换看看这篇文章,它说明了如何实现此目的:Using different kubectl versions with multiple Kubernetes clusters(免责声明:我写了提到的文章)
我还建议将其读取为:Mastering the KUBECONFIG file和Configure Access to Multiple Clusters
答案 1 :(得分:1)
嗯,我是个白痴。
kubectl
的--help输出中没有答案,但是,手册页中也有此输出。
所有要做的就是将--context
标志放入其命令中。
答案 2 :(得分:0)
您可以创建位于~/.kube/config
下的上下文文件的副本,并在2个不同的Shell中,使用第一个的export KUBECONFIG=/path/to/kubeconfig1
和第一个的export KUBECONFIG=/path/to/kubeconfig2
指向2个不同的配置文件。第二。您可以编辑这些文件以选择2个不同的上下文。
要轻松选择上下文/在上下文之间进行切换,可以使用kubectx as suggested by Blokje5。
答案 3 :(得分:0)
我一直喜欢kubectx作为快速切换上下文的一种方式。如果您使用aws-iam-authenticator
正确设置了上下文,就像这样:
users:
- name: kubernetes-admin
user:
exec:
apiVersion: client.authentication.k8s.io/v1alpha1
command: aws-iam-authenticator
args:
- "token"
- "-i"
- "<cluster_id>"
- "-r"
- "<admin_role_arn>"
- name: kubernetes-user
user:
exec:
apiVersion: client.authentication.k8s.io/v1alpha1
command: aws-iam-authenticator
args:
- "token"
- "-i"
- "<cluster_id>"
- "-r"
- "<user_role_arn>"
这应该使您可以轻松切换上下文。 (注意:这是假设角色类型的情况。您也可以将AWS_PROFILE
传递给aws-iam-authenticator
。)
答案 4 :(得分:0)
现在有了 kubie。 https://github.com/sbstp/kubie
它可以解决所有问题。