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有关.我不知道如何在没有访问服务器的情况下解决这个问题.
我得到了同样的错误.
我通过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)
这为我解决了这个问题.
| 归档时间: |
|
| 查看次数: |
4949 次 |
| 最近记录: |