À partir d'un ~ compte AWS vide, j'essaie de suivre https://docs.aws.Amazon.com/eks/latest/userguide/getting-started.html
Cela signifie donc que j'ai créé une pile VPS, puis installé aws-iam-authentifier, awscli et kubectl, puis créé un utilisateur IAM avec accès programmatique et AmazonEKSAdminPolicy directement attaché.
J'ai ensuite utilisé le site Web pour créer mon cluster EKS et j'ai utilisé aws configure
pour définir la clé d'accès et le secret de mon utilisateur IAM.
aws eks update-kubeconfig --name wr-eks-cluster
a bien fonctionné, mais:
kubectl get svc
error: the server doesn't have a resource type "svc"
J'ai quand même continué, créant ma pile de nœuds de travail, et maintenant je suis dans une impasse avec:
kubectl apply -f aws-auth-cm.yaml
error: You must be logged in to the server (the server has asked for the client to provide credentials)
aws-iam-authenticator token -i <my cluster name>
semble bien fonctionner.
La chose qui me semble manquer, c'est que lorsque vous créez le cluster, vous spécifiez un rôle IAM, mais lorsque vous créez l'utilisateur (selon le guide), vous attachez une stratégie. Comment mon utilisateur est-il censé avoir accès à ce cluster?
Ou finalement, comment procéder et accéder à mon cluster à l'aide de kubectl?
system:master
autorisations, et c'est suffisant pour que kubectl
fonctionne. Vous devez utiliser ces informations d'identification utilisateur (AWS_ACCESS_KEY_ID
et AWS_SECRET_ACCESS_KEY
) pour accéder au cluster. Dans le cas où vous n'avez pas créé d'utilisateur IAM spécifique pour créer un cluster, vous l'avez probablement créé à l'aide du compte AWS racine. Dans ce cas, vous pouvez utiliser les informations d'identification de l'utilisateur root ( Création de clés d'accès pour l'utilisateur root ).aws-auth
ConfigMap dans votre cluster - il contient des entités IAM -> mappage kubernetes ServiceAccount.Je ne sais pas comment transmettre les informations d'identification pour le aws-iam-authenticator
:
~/.aws/credentials
avec aws_profile_of_eks_iam_creator
alors vous pouvez essayer $ AWS_PROFILE=aws_profile_of_eks_iam_creator kubectl get all --all-namespaces
$ AWS_ACCESS_KEY_ID=XXX AWS_SECRET_ACCESS_KEY=YYY AWS_DEFAULT_REGION=your-region-1 kubectl get all --all-namespaces
Les deux devraient fonctionner, car kubectl ...
utilisera le ~/.kube/config
cela contient aws-iam-authenticator token -i cluster_name
commande. aws-iam-authenticator
utilise des variables d'environnement ou ~/.aws/credentials
pour vous donner un jeton.
En outre, cette réponse peut être utile pour comprendre la première création d'utilisateur EKS.