kubectl错误 使用kubectl时必须登录服务器(未授权)

lik*_*one 3 amazon-ec2 docker kubernetes amazon-eks

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

\n

AWS 上的 kOps 入门

\n

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

\n

这是我所做的:

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

    \n
  2. \n
  3. 集群状态存储(S3)

    \n
  4. \n
  5. 准备本地环境

    \n
  6. \n
\n
export NAME=myfirstcluster.example.com \nexport KOPS_STATE_STORE=s3://prefix-example-com-state-store\n
Run Code Online (Sandbox Code Playgroud)\n
    \n
  1. 创建集群配置kops create cluster--zones=us-west-2a${NAME}

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

    \n
  4. \n
\n

\xe2\x98\x85成功\xe2\x98\x85

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

知道如何解决这个问题吗?

\n

我尝试了其他方法。

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

    \n
  2. \n
  3. 删除.kube/cache

    \n
  4. \n
  5. kubectl apply -f aws-auth.yaml

    \n
  6. \n
\n
    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 \xe3\x80\x80\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n
    \n
  1. 修改.kube/config用户:
  2. \n
\n
    name: xxclusterNAMExxx user: exec: apiVersion: client.authentication.k8s.io/v1alpha1 command: aws-iam-authenticator args: - "token" - "-i" - "xxclusterNAMExxx" env: - name: AWS_PROFILE value: "xxxx"\n
Run Code Online (Sandbox Code Playgroud)\n

全部失败了。

\n

小智 5

尝试:

kops export kubecfg --admin 
Run Code Online (Sandbox Code Playgroud)