尝试设置EKS集群。
调用DescribeCluster operation
时发生错误(AccessDeniedException):未授权帐户xxx 以使用此服务。此错误来自CLI,在控制台上,我能够成功创建群集以及所有内容。
我以root user
(仅是我的个人帐户)身份登录。
它说帐户,所以听起来像不是用户/权限问题? 我必须启用我的帐户才能使用此服务吗?我看不到任何此类选择。
如果以用户身份(而不是root用户)登录,我还能看到以前以root用户身份创建的所有内容。现在,我已经创建了一个用户,并为其分配了admin和eks *权限。 我已经选中了 以用户身份登录时-我可以看到所有内容。
aws cli是使用根凭据(我认为)设置的-因此,我必须返回并撤消修复所有这些问题,而仅使用该用户。
更新1
我重做/重新启动了所有内容,包括user和awscli configure-只是为了确保。但是问题仍然没有得到解决。
create the file manually有一个选项-最终可以使用。
我能够:kubectl get svc
名称类型集群IP外部IP端口的年龄 kubernetes ClusterIP 10.100.0.1 443 / TCP 48m
KUBECONFIG::我已经设置了env:KUBECONFIG
$env:KUBECONFIG="C:\Users\sbaha\.kube\config-EKS-nginixClstr"
$Env:KUBECONFIG
C:\Users\sbaha\.kube\config-EKS-nginixClstr
kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
* aws kubernetes aws
kubectl config current-context
aws
我的理解是我应该同时看到aws
和我的EKS-nginixClstr
上下文,但是我只看到aws
-这(也是)有问题吗?
下一步是创建并添加工作程序节点。我在.yaml文件中正确更新了节点arn:kubectl apply -f ~\.kube\aws-auth-cm.yaml
configmap/aws-auth configured
所以这也许有用。
但是接下来失败了:
kubectl get nodes
在默认名称空间中找不到资源。
在AWS控制台上,NodeGrp显示-创建完成。同样在CLI kubectl get nodes --watch
-它甚至不返回。
因此,必须对此进行下一步调试-
aws-auth-cm.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: aws-auth
namespace: kube-system
data:
mapRoles: |
- rolearn: arn:aws:iam::arn:aws:iam::xxxxx:role/Nginix-NodeGrpClstr-NodeInstanceRole-1SK61JHT0JE4
username: system:node:{{EC2PrivateDNSName}}
groups:
- system:bootstrappers
- system:nodes
答案 0 :(得分:0)
此问题与没有正确的eksctl版本有关-它必须至少为0.7.0。文档说明了这一点,我知道这一点,但是最初我所做的一切都不能超过0.6.0。获取方法是将AWS CLI配置为支持EKS的区域。一旦获得0.7.0,此问题便得到解决。
要使EKS正常运行,总的来说-您必须在控制台和CLI上拥有相同的用户,并且必须在支持EKS且具有正确的eksctl版本0.7.0的区域中工作。