3

假设我们在 Amazon EKS 上有几个集群。我们有一个新用户或新机器,需要在 .kube/config 中填充最新的集群信息。

是否有一些简单的方法可以从 EKS 上的集群中获取上下文信息并将信息放入 .kube/config 文件中?就像是:

eksctl init "cluster-1-ARN" "cluster-2-ARN"

所以经过一些网络调查后,我听说:

aws eks update-kubeconfig

我试过了,我得到了这个:

$ aws eks update-kubeconfig 用法:aws [options] [ ...] [parameters] 要查看帮助文本,您可以运行:

aws 帮助 aws 帮助 aws 帮助

aws:错误:参数 --name 是必需的

我认为它只会更新所有集群,但事实并非如此。所以我放了集群名称/ARN,如下所示:

aws eks update-kubeconfig --name arn:aws:eks:us-west-2:913xxx371:cluster/eks-cluster-1
aws eks update-kubeconfig --name arn:aws:eks:us-west-2:913xxx371:cluster/ignitecluster

但后来我得到:

kbc stderr: An error occurred (ResourceNotFoundException) when calling the DescribeCluster operation: No cluster found for name: arn:aws:eks:us-west-2:913xxx371:cluster/eks-cluster-1.
kbc stderr: An error occurred (ResourceNotFoundException) when calling the DescribeCluster operation: No cluster found for name: arn:aws:eks:us-west-2:913xxx371:cluster/ignitecluster.

嗯,这有点愚蠢那些集群名称存在..所以我现在该怎么办

4

2 回答 2

5

所以是的,我命名的那些集群实际上并不存在。我通过以下方式发现:

 aws eks list-clusters

然而,最终我仍然觉得很强大,因为我们需要制作一个工具,可以使用所有存在的集群来更新你的配置,而不是让你命名它们。

因此,要以编程方式执行此操作,它将是:

aws eks list-clusters | jq '.clusters[]' | while read c; do
  aws eks update-kubeconfig --name "$c"
done;
于 2019-06-27T01:24:34.523 回答
0

就我而言,我正在使用两个 AWS 环境。我的 ~/.aws/credentials 指向一个,必须更改为指向正确的帐户。更改帐户详细信息后,您可以通过运行以下命令来验证更改:

eksctl get clusters

然后在验证区域后使用以下命令设置 kube-config。

aws eks --region your_aws_region update-kubeconfig --name your_eks_cluster
于 2020-11-19T00:53:47.643 回答