我正在尝试设置AWS EKS群集,并希望从本地Windows工作站连接该群集。无法连接。这是我执行的步骤;
Command:kubectl.exe get svc
output:
could not get token: NoCredentialProviders: no valid providers in chain. Deprecated.
For verbose messaging see aws.Config.CredentialsChainVerboseErrors
could not get token: NoCredentialProviders: no valid providers in chain. Deprecated.
For verbose messaging see aws.Config.CredentialsChainVerboseErrors
could not get token: NoCredentialProviders: no valid providers in chain. Deprecated.
For verbose messaging see aws.Config.CredentialsChainVerboseErrors
could not get token: NoCredentialProviders: no valid providers in chain. Deprecated.
For verbose messaging see aws.Config.CredentialsChainVerboseErrors
could not get token: NoCredentialProviders: no valid providers in chain. Deprecated.
For verbose messaging see aws.Config.CredentialsChainVerboseErrors
Unable to connect to the server: getting credentials: exec: exit status 1
不确定在这里有什么错误的设置。有人可以帮忙吗?我知道有些地方说您必须使用相同的aws用户来连接群集(EKS)。但是,如何获取AWS Assign-role的访问密钥和令牌(步骤2:eks-role-1)?
答案 0 :(得分:0)
我想我已经解决了这个问题;想在这里写下来,以便人们从中受益。 首次创建EKS集群时;检查您从中创建(检查AWS Web Console用户设置)。即使您是从CFN脚本创建的,也要分配不同的角色来创建集群。您必须具有CLI访问权限,用户才能开始从kubectl工具访问您的集群。首次访问后(默认情况下,该用户将具有管理员访问权限);您可能需要使用congifMap将另一个IAM用户添加到群集管理员(或其他角色)中;那么只有您可以切换或使用备用IAM用户从kubectl命令行访问群集。
答案 1 :(得分:0)
确保文件〜/ .aws / credentials具有可管理群集的IAM帐户的AWS密钥和秘密密钥。
或者,您可以设置AWS env参数:
export AWS_ACCESS_KEY_ID=xxxxxxxxxxxxx
export AWS_SECRET_ACCESS_KEY=ssssssssss
答案 2 :(得分:0)
对于参与此活动的人们,也许您需要为eks提供个人资料。
EKS不在kubeconfig中添加配置文件。
解决方案:
$ export AWS_ACCESS_KEY_ID=xxxxxxxxxxxxx
$ export AWS_SECRET_ACCESS_KEY=ssssssssss
$ export AWS_PROFILE=ppppp
users:
- name: eks # This depends on your config.
user:
exec:
apiVersion: client.authentication.k8s.io/v1alpha1
command: aws-iam-authenticator
args:
- "token"
- "-i"
- "general"
env:
- name: AWS_PROFILE
value: "<YOUR_PROFILE_HERE>" #
答案 3 :(得分:0)
添加另一个选项。
除了使用 aws-iam-authenticator,您还可以将命令更改为 aws
并替换 args
,如下所示:
- name: my-cluster
user:
exec:
apiVersion: client.authentication.k8s.io/v1alpha1
args: #<--- Change the args
- --region
- <YOUR_REGION>
- eks
- get-token
- --cluster-name
- my-cluster
command: aws #<--- Change to command to aws
env:
- name: AWS_PROFILE
value: <YOUR_PROFILE_HERE>