使用 k8s/eks 信息播种新机器的最佳方式
best way to seed new machine with k8s/eks info
假设我们在 Amazon EKS 上有几个集群。我们有一个新用户或新机器需要 .kube/config 填充最新的集群信息。
是否有一些简单的方法可以让我们从 EKS 上的集群获取上下文信息并将信息放入 .kube/config 文件中?类似于:
eksctl init "cluster-1-ARN" "cluster-2-ARN"
所以经过一些网络调查,我听说:
aws eks update-kubeconfig
我试过了,我明白了:
$ aws eks update-kubeconfig usage: aws [options]
[ ...] [parameters] To see help text, you can
run:
aws help aws help aws help
aws: error: argument --name is required
我认为它会更新所有集群,但事实并非如此。所以我把集群 names/ARNs,像这样:
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.
嗯,这有点愚蠢,那些集群名称存在..所以我现在该怎么办
是的,我命名的那些集群实际上并不存在。我通过以下方式发现:
aws eks list-clusters
但最终,我仍然感觉很坚强,因为我们需要制作一个工具,它可以只用现有的所有集群更新您的配置,而不是让您命名它们。
所以要以编程方式执行此操作,它将是:
aws eks list-clusters | jq '.clusters[]' | while read c; do
aws eks update-kubeconfig --name "$c"
done;
就我而言,我使用了两个 AWS 环境。我的 ~/.aws/credentials 指向一个,必须更改为指向正确的帐户。更改帐户详细信息后,您可以通过 运行 以下命令验证更改:
eksctl get clusters
然后在验证区域后使用以下命令设置 kube-config。
aws eks --region your_aws_region update-kubeconfig --name your_eks_cluster
假设我们在 Amazon EKS 上有几个集群。我们有一个新用户或新机器需要 .kube/config 填充最新的集群信息。
是否有一些简单的方法可以让我们从 EKS 上的集群获取上下文信息并将信息放入 .kube/config 文件中?类似于:
eksctl init "cluster-1-ARN" "cluster-2-ARN"
所以经过一些网络调查,我听说:
aws eks update-kubeconfig
我试过了,我明白了:
$ aws eks update-kubeconfig usage: aws [options] [ ...] [parameters] To see help text, you can run:
aws help aws help aws help
aws: error: argument --name is required
我认为它会更新所有集群,但事实并非如此。所以我把集群 names/ARNs,像这样:
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.
嗯,这有点愚蠢,那些集群名称存在..所以我现在该怎么办
是的,我命名的那些集群实际上并不存在。我通过以下方式发现:
aws eks list-clusters
但最终,我仍然感觉很坚强,因为我们需要制作一个工具,它可以只用现有的所有集群更新您的配置,而不是让您命名它们。
所以要以编程方式执行此操作,它将是:
aws eks list-clusters | jq '.clusters[]' | while read c; do
aws eks update-kubeconfig --name "$c"
done;
就我而言,我使用了两个 AWS 环境。我的 ~/.aws/credentials 指向一个,必须更改为指向正确的帐户。更改帐户详细信息后,您可以通过 运行 以下命令验证更改:
eksctl get clusters
然后在验证区域后使用以下命令设置 kube-config。
aws eks --region your_aws_region update-kubeconfig --name your_eks_cluster