我使用 Terraform 创建了 Amazon EKS Kubernetes 集群,但现在我无权访问任何资源,并且 kubectl 由于凭证而失败

问题描述 投票:0回答:1

此解决方案解决了以下错误

如果您使用 terraform 创建 EKS 集群,然后使用用于创建集群的相同凭证,但看到这些错误,则此解决方案可能会解决您的问题。

AWS 控制台

Your current IAM principal doesn’t have access to Kubernetes objects on this cluster.
This may be due to the current user or role not having Kubernetes RBAC permissions to describe cluster resources or not having an entry in the cluster’s auth config map

其中包含一个不太有用的链接,指向了解更多

kubectl

the server has asked for the client to provide credentials

eksctl

Error: getting auth <object>>: Unauthorized
amazon-web-services kubernetes amazon-eks kubectl eksctl
1个回答
0
投票

答案

先决条件

确保集群 API 端点可访问。

如果

kubectl
返回如下错误:

"https://XXXXX.gr7.us-east-1.eks.amazonaws.com/api?timeout=32s": dial tcp 10.0.2.234:443: i/o timeout

...那么阻止您连接到 API 的一种可能性是 API 服务器端点访问。您可以使用 CIDR 访问列表将其设置为public,或者必须从 VPC 内部访问它。

请参阅

cluster_endpoint_public_access
和相关设置此处

解决方案

确保集群创建者具有管理员权限。

如果

kubectl
返回如下错误,这可能是您的问题:

the server has asked for the client to provide credentials

这是一个很大的“陷阱”,因为当使用

eksctl
创建集群时,它会为你处理这个问题。但是,使用 Terraform 创建 EKS 集群时,此设置的默认值为
false
。您需要主动将其配置为
true

enable_cluster_creator_admin_permissions = true
- 更多信息 这里

我为什么创建这篇文章?

我创建了这个问题和答案,因为当我遇到这个问题并研究它时,所有答案似乎都假设集群是通过

eksctl
创建的,并且集群创建者已经拥有管理员权限。

我找到的答案都假设您实际上仍然可以发出

kubectl
eksctl
命令。如果您 not 指定了
enable_cluster_creator_admin_permissions = true
,则
kubectl
not 工作,并且许多
eksctl
命令将不起作用,并且会失败并出现如下错误:

Error: getting auth ConfigMap: Unauthorized

请注意,某些

eksctl
命令将起作用,因为它们依赖于 Amazon API 而不是集群 API。 例如,这些仍然有效

aws eks --region <region>> update-kubeconfig --name <cluster_name>

eksctl get cluster --name <cluster_name>

我还不明白的部分

如果您使用

enable_cluster_creator_admin_permissions
false
创建 EKS 集群,在我看来,没有办法重新配置您的集群以使其可用。

  • 您没有通过 AWS 控制台或
    system:masters
    将用户添加到
    eksctl create iamidentitymapping
    的权限。
  • 您无法使用
    kubectl
    ,也无法通过 AWS 控制台访问任何资源(集群、工作负载、配置、服务等)。

所以我剩下的问题是:

  • 使用
    enable_cluster_creator_admin_permissions = false
    创建 EKS 集群的用例是什么?
  • 如果没有,为什么会有
    enable_cluster_creator_admin_permissions
    设置,为什么不默认为
    true
© www.soinside.com 2019 - 2024. All rights reserved.