Sam*_*m-T 5 amazon-web-services amazon-iam kubernetes kubectl amazon-eks
尝试设置 EKS 集群。调用时发生错误 (AccessDeniedException) DescribeCluster operation:帐户 xxx 未被授权使用此服务。这个错误来自 CLI,在控制台上我能够成功地创建集群和一切。我登录为root user(它只是我的个人帐户)。
它说帐户听起来不是用户/权限问题?我是否必须为该服务启用我的帐户?我没有看到任何这样的选择。
此外,如果以用户(而不是 root)身份登录 - 我是否能够看到之前以 root 身份创建的所有内容。我现在已经创建了一个用户并分配了 admin 和 eks* 权限。我 在以用户身份登录时检查了这一点- 我可以看到所有内容。
aws cli 是使用 root 凭据设置的(我认为) - 所以我必须返回并撤消修复所有这些并只使用该用户。
更新 1
我重做/重新启动包括用户和 awscli 配置在内的所有内容 - 只是为了确保。但问题仍然没有得到解决。
有一个手动创建文件的选项- 终于奏效了。
我能够: kubectl get svc
名称 类型 CLUSTER-IP EXTERNAL-IP PORT(S) AGE 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
Run Code Online (Sandbox Code Playgroud)
我的理解是我应该同时看到上下文aws和我的EKS-nginixClstr上下文,但我只看到aws- 这(也是)一个问题吗?
下一步是创建和添加工作节点。我在 .yaml 文件中正确更新了节点 arn:kubectl apply -f ~\.kube\aws-auth-cm.yaml
configmap/aws-auth configured 所以这可能有效。
但接下来它失败了:
kubectl get nodes在默认命名空间中找不到资源。
在 AWS 控制台 NodeGrp 上显示- Create Completed。同样在 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
Run Code Online (Sandbox Code Playgroud)
此问题与 eksctl 版本不正确有关 - 它必须至少为 0.7.0。文档说明了这一点,我也知道这一点,但最初无论我做什么都无法超越 0.6.0。获取它的方法是将 AWS CLI 配置到支持 EKS 的区域。一旦您获得 0.7.0,这个问题就得到解决。
总体而言,要使 EKS 正常工作 - 您必须在控制台和 CLI 上拥有相同的用户,并且您必须在支持 EKS 的区域上工作,并且具有正确的 eksctl 版本 0.7.0。
| 归档时间: |
|
| 查看次数: |
4077 次 |
| 最近记录: |