Admins-MacBook-Pro:〜Harshin $ kubectl cluster-info Kubernetes主服务器正在http://localhost:8080
上运行要进一步调试和诊断群集问题,请使用“ kubectl cluster-info dump”。 错误:服务器没有资源类型“服务”
我正在关注此文档
https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html?refid=gs_card
在尝试为亚马逊eks配置kubectl的步骤11中测试我的配置时
Mockito.when(child.getStr(any(Dataset.class))).thenCallRealMethod();
答案 0 :(得分:6)
将“名称:kubernetes”更改为群集的实际名称。
这是我要完成的工作。...
1。启用详细信息以确保正确读取配置文件。
kubectl get svc --v = 10
2。修改文件如下:
apiVersion: v1
clusters:
- cluster:
server: XXXXX
certificate-authority-data: XXXXX
name: abc-eks
contexts:
- context:
cluster: abc-eks
user: aws
name: aws
current-context: aws
kind: Config
preferences: {}
users:
- name: aws
user:
exec:
apiVersion: client.authentication.k8s.io/v1alpha1
command: aws-iam-authenticator
args:
- "token"
- "-i"
- "abc-eks"
# - "-r"
# - "<role-arn>"
env:
- name: AWS_PROFILE
value: "aws"
答案 1 :(得分:3)
我也遇到过类似的问题,但这不是直接的解决方案,而是解决方法。使用AWS cli
命令创建集群而不是控制台。根据文档,创建集群的用户或角色将具有主访问权限。
aws eks create-cluster --name <cluster name> --role-arn <EKS Service Role> --resources-vpc-config subnetIds=<subnet ids>,securityGroupIds=<security group id>
确保EKS服务角色具有IAM访问权限(我猜是Full,但是我猜AssumeRole会做到)。
EC2计算机角色应该具有eks:CreateCluster
和IAM访问权限。为我工作:)
答案 2 :(得分:2)
我遇到了这个问题,发现它是〜/ .aws / credentials中的默认键设置。 我们有一些针对不同客户的AWS账户,还有一个用于我们自己的测试和研究的沙箱账户。因此,我们的凭据文件如下所示:
[default]
aws_access_key_id = abc
aws_secret_access_key = xyz
region=us-east-1
[cpproto]
aws_access_key_id = abc
aws_secret_access_key = xyz
region=us-east-1
[sandbox]
aws_access_key_id = abc
aws_secret_access_key = xyz
region=us-east-1
我在弄乱我们的沙箱帐户,但是[默认]部分指向另一个帐户。 将沙箱的密钥放入默认部分后,“ kubectl get svc”命令就可以正常工作。
似乎我们需要一种方法来告诉aws-iam-authenticator与aws cli中的--profile使用相同的密钥。
答案 3 :(得分:0)
我想您应该取消对“ env”项的注释,并更改对〜/ .aws / credentials的引用 因为您的aws_iam_authenticator需要确切的AWS凭证。
请参阅此文档:https://docs.aws.amazon.com/eks/latest/userguide/create-kubeconfig.html
要使Kubernetes的AWS IAM Authenticator始终使用特定的命名AWS凭证配置文件(而不是默认的AWS凭证提供者链),请取消注释环境行并用要使用的配置文件名称代替。