我参考以下网站继续进行工作(我不使用 EKS。我使用 kops 在 ec2 上创建 k8s)
当我尝试拨打电话时,kubectl get service
收到了以下消息:error: You must be logged in to the server (Unauthorized)
这是我所做的:
设置 IAM 用户(创建用户并添加角色)
集群状态存储(S3)
准备本地环境
export NAME=myfirstcluster.example.com
export KOPS_STATE_STORE=s3://prefix-example-com-state-store
创建集群配置
kops create cluster--zones=us-west-2a${NAME}
构建集群
kops update cluster ${NAME} --yes
★成功★
- 当我尝试访问集群时
kubectl get nodes
,我不断收到错误:You must be logged in to the server (Unauthorized)
知道如何修复这个问题吗?
我尝试了其他方法。
将实例配置文件附加到 EC2
删除
.kube/cache
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
相同的错误:您必须登录到服务器(服务器已要求客户端提供凭据)。
- 修改
.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