Kubectl 使用时出现错误 您必须登录到服务器(未经授权)

Kubectl 使用时出现错误 您必须登录到服务器(未经授权)

我参考以下网站继续进行工作(我不使用 EKS。我使用 kops 在 ec2 上创建 k8s)

在 AWS 上开始使用 kOps

当我尝试拨打电话时,kubectl get service收到了以下消息:error: You must be logged in to the server (Unauthorized)

这是我所做的:

  1. 设置 IAM 用户(创建用户并添加角色)

  2. 集群状态存储(S3)

  3. 准备本地环境

export NAME=myfirstcluster.example.com 
export KOPS_STATE_STORE=s3://prefix-example-com-state-store
  1. 创建集群配置kops create cluster--zones=us-west-2a${NAME}

  2. 构建集群kops update cluster ${NAME} --yes

★成功★

  1. 当我尝试访问集群时kubectl get nodes,我不断收到错误:You must be logged in to the server (Unauthorized)

知道如何修复这个问题吗?

我尝试了其他方法。

  1. 将实例配置文件附加到 EC2

  2. 删除.kube/cache

  3. kubectl apply -f aws-auth.yaml

    apiVersion: v1 kind: ConfigMap metadata: name: aws-auth namespace: kube-system data: mapUsers: | - userarn: arn:aws:iam::xxxx:user/xxx username: xxx groups: - system:masters mapRoles: | - rolearn: arn:aws:iam::xxxx:role/xxx username: system:node:{{EC2PrivateDNSName}} groups: - system:bootstrappers - system:nodes  

相同的错误:您必须登录到服务器(服务器已要求客户端提供凭据)。

  1. 修改.kube/config用户:
    name: xxclusterNAMExxx user: exec: apiVersion: client.authentication.k8s.io/v1alpha1 command: aws-iam-authenticator args: - "token" - "-i" - "xxclusterNAMExxx" env: - name: AWS_PROFILE value: "xxxx"

全部失败了。

答案1

尝试:

kops export kubecfg --admin 

答案2

您可以尝试以下命令

$ kops export kubecfg --admin --kubeconfig ~/workspace/kubeconfig --state=s3://YOUR-S3-BUCKET-NAME

答案3

https://kops.sigs.k8s.io/releases/1.19-notes/#changes-to-kubernetes-config-export

是的,您也需要传递用户。

kops 导出 kubecfg --name --admin

相关内容