设置AWS EKS - 不知道配置的用户名和密码

Ale*_*les 13 amazon-web-services kubernetes kubectl amazon-eks

我在AWS上设置EKS非常困难.我已经按照本教程:https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html#eks-launch-workers

我到达了~/.kube/config文件,当我尝试运行时,kubectl get svc我提示如下.

? kubectl get svc
Please enter Username: Alex
Please enter Password: ********
Error from server (Forbidden): services is forbidden: User 
"system:anonymous" cannot list services in the namespace "default"
Run Code Online (Sandbox Code Playgroud)

我不确定在哪里可以找到此条目的用户名和密码.请指出我可以找到此信息的确切位置.

我认为这也与EKS RBAC有关.我不知道如何在没有访问服务器的情况下解决这个问题.

mon*_*ome 11

如果您的user配置不起作用kubeconfig,或者您的版本kubectl低于v1.10 ,则会出现此问题


Jes*_*ssG 8

我得到了同样的错误.

我通过aws控制台创建了EKS集群,但是当我按照文档中的步骤配置我的kubeconfig时,我得到了同样的错误:

$ kubectl get svc
Please enter Username: JessicaG
Please enter Password: ****************
Error from server (Forbidden): services is forbidden: User "system:anonymous" cannot list services in the namespace "default"
Run Code Online (Sandbox Code Playgroud)

这就是我的问题所在:

AWS入门指南的"步骤1:创建Amazon EKS群集:使用控制台创建群集"部分中,它说:

"您必须在此步骤中使用IAM用户凭据,而不是根凭据.如果使用root凭据创建Amazon EKS群集,则无法对群集进行身份验证."

原来我用我的root凭据创建了EKS集群,但是我试图用我的管理员用户进行身份验证JessicaG.

我的解决方案

我用admin IAM用户重新创建了集群JessicaG.这样做是我采取的步骤:

1)我~/.aws/credentials使用用户的访问密钥在本地文件中配置了默认用户

$ cat ~/.aws/credentials
[default]
aws_access_key_id = <JessicaG access key>
aws_secret_access_key = <JessicaG secret key>
Run Code Online (Sandbox Code Playgroud)

2)从命令行创建一个eks集群:

aws eks create-cluster --name eksdemo --role-arn <eksRole> --resources-vpc-config subnetIds=<subnets>,securityGroupIds=<securityGrps>

3)配置的kubeconfig:

apiVersion: v1
clusters:
- cluster:
    server: REDACTED
    certificate-authority-data: REDACTED
  name: eksdemo
contexts:
- context:
    cluster: eksdemo
    user: aws-jessicag
  name: eksdemo
current-context: eksdemo
kind: Config
preferences: {}
users:
- name: aws-jessicag
  user:
    exec:
      apiVersion: client.authentication.k8s.io/v1alpha1
      command: heptio-authenticator-aws
      args:
        - "token"
        - "-i"
        - "eksdemo"
Run Code Online (Sandbox Code Playgroud)

这为我解决了这个问题.