kubectl config use-context 删除 eks 用户
kubectl config use-context deleting eks user
我在尝试使用 kubectl
切换上下文时遇到了一些非常奇怪的行为。
我的配置文件声明了两个上下文;一个指向内部集群,而另一个指向 Amazon EKS 集群。
apiVersion: v1
kind: Config
clusters:
- cluster:
certificate-authority-data: <..>
server: <..>
name: in-house
- cluster:
certificate-authority-data: <..>
server: <..>
name: eks
contexts:
- context:
cluster: in-house
user: divesh-in-house
name: in-house-context
- context:
cluster: eks
user: divesh-eks
name: eks-context
current-context: in-house-context
preferences: {}
users:
- name: divesh-eks
user:
exec:
apiVersion: client.authentication.k8s.io/v1alpha1
command: aws-iam-authenticator
args:
- "token"
- "-i"
- "eks"
env: null
- name: divesh-in-house
user:
client-certificate-data: <..>
client-key-data: <..>
我也在使用 aws-iam-authenticator
对 EKS 集群进行身份验证。
我的问题是这样的 - 只要我使用内部集群,一切正常。但是,当我执行 kubectl config use-context eks-context
时,我观察到以下行为。
- 我尝试在集群上执行的任何操作(例如,
kubectl get pods -n production
)都会显示 Please enter Username:
提示。我假设 aws-iam-authenticator
应该已经为我管理了身份验证。我可以确认 运行 手动验证器 (aws-iam-authenticator token -i eks
) 对我来说工作正常。
执行 kubectl config view
会忽略 divesh-eks
用户,所以输出看起来像
users:
- name: divesh-eks
user: {}
通过执行 kubectl config use-context in-house-context
切换回内部集群会修改我的配置文件并删除 divesh-eks-user
,因此配置文件现在包含
users:
- name: divesh-eks
user: {}
我的同事好像没有遇到过这个问题。
想法?
该配置的 exec
部分已添加到 1.10 (https://github.com/kubernetes/kubernetes/pull/59495)
如果您使用 kubectl 之前的版本,它将无法识别 exec 插件(导致提示输入凭据),如果您使用它来进行 kubeconfig 更改,它将在执行时删除 exec 字段保留更改
我在尝试使用 kubectl
切换上下文时遇到了一些非常奇怪的行为。
我的配置文件声明了两个上下文;一个指向内部集群,而另一个指向 Amazon EKS 集群。
apiVersion: v1
kind: Config
clusters:
- cluster:
certificate-authority-data: <..>
server: <..>
name: in-house
- cluster:
certificate-authority-data: <..>
server: <..>
name: eks
contexts:
- context:
cluster: in-house
user: divesh-in-house
name: in-house-context
- context:
cluster: eks
user: divesh-eks
name: eks-context
current-context: in-house-context
preferences: {}
users:
- name: divesh-eks
user:
exec:
apiVersion: client.authentication.k8s.io/v1alpha1
command: aws-iam-authenticator
args:
- "token"
- "-i"
- "eks"
env: null
- name: divesh-in-house
user:
client-certificate-data: <..>
client-key-data: <..>
我也在使用 aws-iam-authenticator
对 EKS 集群进行身份验证。
我的问题是这样的 - 只要我使用内部集群,一切正常。但是,当我执行 kubectl config use-context eks-context
时,我观察到以下行为。
- 我尝试在集群上执行的任何操作(例如,
kubectl get pods -n production
)都会显示Please enter Username:
提示。我假设aws-iam-authenticator
应该已经为我管理了身份验证。我可以确认 运行 手动验证器 (aws-iam-authenticator token -i eks
) 对我来说工作正常。 执行
kubectl config view
会忽略divesh-eks
用户,所以输出看起来像users: - name: divesh-eks user: {}
通过执行
kubectl config use-context in-house-context
切换回内部集群会修改我的配置文件并删除divesh-eks-user
,因此配置文件现在包含users: - name: divesh-eks user: {}
我的同事好像没有遇到过这个问题。
想法?
该配置的 exec
部分已添加到 1.10 (https://github.com/kubernetes/kubernetes/pull/59495)
如果您使用 kubectl 之前的版本,它将无法识别 exec 插件(导致提示输入凭据),如果您使用它来进行 kubeconfig 更改,它将在执行时删除 exec 字段保留更改