无法在AWS Elastic Kubernetes Service中创建命名空间-已禁用 [英] Cannot create namespaces in AWS Elastic Kubernetes Service - Forbidden

查看:23
本文介绍了无法在AWS Elastic Kubernetes Service中创建命名空间-已禁用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在AWS Elastic Kubernetes Service(EKS)中托管应用程序。我已经使用AWS控制台配置了EKS集群。已配置节点组并将节点添加到EKS群集,一切正常。

为了连接到集群,我启动了一个EC2实例(Centos7)并配置了以下内容:

1.安装了docker、kubeadm、kubelet和kubectl。
2.已安装并配置AWS Cli V2。

要向EKS群集进行身份验证,我已将IAM角色附加到具有以下AWS托管策略的EC2实例:

1.AmazonEKSClusterPolicy
2.AmazonEKSWorkerNodePolicy
3.AmazonEC2ContainerRegistryReadOnly
4.AmazonEKS_CNI_Policy
5.AmazonElasticContainerRegistryPublicReadOnly
6.EC2InstanceProfileForImageBuilderECRContainerBuilds
7.AmazonElasticContainerRegistryPublicFullAccess
8.AWSAppRunnerServicePolicyForECRAccess
9.AmazonElasticContainerRegistryPublicPowerUser
10.SecretsManager读写

之后,我运行以下命令连接到EKS集群:
1.AWS STS Get-Caller-Identity
2.AWS EKS UPDATE-kubeconfig--名称ek-cluster--Region AP-South-1

当我运行kubectl cluster-infokubectl Get Nodes时,我得到了以下信息:

但是,当我尝试运行kubectl Get Namespaces时,我收到以下错误:

当我尝试在EKS集群中创建名称空间时,我遇到了同样的错误。 不确定我在这里遗漏了什么。

来自服务器的错误(禁止):创建命名空间时出错。yml";:禁止命名空间:用户";system:node:ip-172-31-43-129.ap-south-1.compute.internal";无法在集群作用域的api组中创建资源命名空间

作为替代方案,我尝试在IAM中创建一个具有管理权限的用户。已创建AWS_ACCESS_KEYAWS_SECRET_KEY_ID。已使用AWS配置在EC2实例中配置凭据。

运行以下命令:
1.AWS STS Get-Caller-Identity
2.AWS EKS UPDATE-kubeconfig--名称EKS-CLUSTER--区域AP-South-1
3.AWS EKS更新-kubeconfig--名称ek-arn:aws:iam::XXXXXXXXXXXX:role/EKS-Cluster-Role

--区域ap-South-1--角色-arn群集

运行kubectl cluster-info--kubeconfig/home/centos/.kube/config后,我收到以下错误:

调用Assum角色操作时出错(访问被拒绝):User:arn:aws:iam::xxxxxxxxxxxx:User/XXXXX无权对资源:arn:aws:iam::XXXXXXXXXXXX:role/EKS-Cluster-Role

执行:sts:Assum角色

有人知道如何解决此问题吗?

推荐答案

我找到了此问题的解决方案。之前,我使用我的AWS帐户的根用户创建了AWS EKS集群(我认为这可能是最初的问题)。这一次,我使用具有管理员权限的IAM用户创建了EKS集群,在集群中创建了一个节点组,并添加了一个工作节点。

接下来,我使用CentOS EC2实例中IAM用户的AWS_ACCESS_KEY_IDAWS_SECRET_KEY_ID配置了AWS CLI。

和前面一样,我登录到CentOS EC2实例并运行以下命令:

1.AWS STS Get-Call-Identity
2.AWS EKS描述--集群--名称EKS-集群--区域AP-South-1--查询集群.状态(检查集群的状态)
3.AWS EKS UPDATE-kubeconfig--名称EKS-CLUSTER--区域AP-South-1

此后,当我运行kubectl Get Pods、kubectl Get Namespaces时,再也没有问题了。事实上,我也能够部署到集群。

因此,作为结论,我认为我们不应该在AWS中使用根用户创建EKS集群。

谢谢!

这篇关于无法在AWS Elastic Kubernetes Service中创建命名空间-已禁用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆