繁体   English   中英

AWS EKS kubectl - 在默认命名空间中找不到资源

[英]AWS EKS kubectl - No resources found in default namespace

尝试设置 EKS 集群。 调用DescribeCluster operation时发生错误(AccessDeniedException):帐户 xxx 无权使用此服务。 这个错误来自 CLI,在控制台上我能够成功地创建集群和一切。 我以root user身份登录(它只是我的个人帐户)。

它说帐户听起来像是不是用户/权限问题? 我必须启用我的帐户才能使用此服务吗? 我没有看到任何这样的选择。

此外,如果以用户身份(而不是 root)登录 - 我将能够看到之前以 root 身份创建的所有内容。 我现在已经创建了一个用户并分配了 admin 和 eks* 权限。 当我以用户身份登录时,我检查了这一点- 我可以看到所有内容。

aws cli 是使用 root 凭据设置的(我认为) - 所以我必须返回 go 并撤消所有这些修复并仅使用此用户。

更新 1
我重做/重新启动了一切,包括用户和 awscli 配置 - 只是为了确保。 但问题仍然没有得到解决。

有一个手动创建文件的选项 - 终于奏效了。

我能够: 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 显示 - 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

此问题与没有正确版本的 eksctl 有关 - 它必须至少为 0.7.0。 文档说明了这一点,我知道这一点,但最初我所做的一切都不能超过 0.6.0。 您获得它的方式是将您的 AWS CLI 配置到支持 EKS 的区域。 一旦你得到 0.7.0,这个问题就会得到解决。
总体而言,要使 EKS 工作 - 您必须在控制台和 CLI 上拥有相同的用户,并且您必须在支持 EKS 的区域上工作,并且拥有正确的 eksctl 版本 0.7.0。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM