EKS AWS: не удается подключить рабочий узел
Я немного застрял на этапе запуска рабочего узла в руководстве AWS EKS. И, честно говоря, на данный момент, я не знаю, что не так. Когда я делаю kubectl получить SVC, я получаю свой кластер, так что это хорошая новость. У меня есть это в моем aws-auth-cm.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: aws-auth
namespace: kube-system
data:
mapRoles: |
- rolearn: arn:aws:iam::Account:role/rolename
username: system:node:{{EC2PrivateDNSName}}
groups:
- system:bootstrappers
- system:nodes
Вот мой конфиг в.kube
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: CERTIFICATE
server: server
name: arn:aws:eks:region:account:cluster/clustername
contexts:
- context:
cluster: arn:aws:eks:region:account:cluster/clustername
user: arn:aws:eks:region:account:cluster/clustername
name: arn:aws:eks:region:account:cluster/clustername
current-context: arn:aws:eks:region:account:cluster/clustername
kind: Config
preferences: {}
users:
- name: arn:aws:eks:region:account:cluster/clustername
user:
exec:
apiVersion: client.authentication.k8s.io/v1alpha1
args:
- token
- -i
- clustername
command: aws-iam-authenticator.exe
Я запустил экземпляр EC2 с рекомендованным AMI.
Некоторые вещи, на которые стоит обратить внимание:
- Я запустил свой кластер с CLI,
- Я создал пару ключей,
- Я не использую Стек Cloudformation,
- Я прикрепил эти политики к роли моего EC2: AmazonEKS_CNI_Policy, AmazonEC2ContainerRegistryReadOnly, AmazonEKSWorkerNodePolicy.
Это моя первая попытка в kubernetes и EKS, так что, пожалуйста, имейте это в виду:). Спасибо за вашу помощь!
2 ответа
Ваш конфигурационный файл и файл аутентификации выглядят правильно. Может быть, есть проблема с назначением групп безопасности? Можете ли вы поделиться точными шагами, которые вы выполнили для создания кластера и рабочих узлов? И какая-то особая причина, почему вам пришлось использовать CLI вместо консоли? Я имею в виду, если это ваша первая попытка EKS, то вам, вероятно, следует попытаться настроить кластер с помощью консоли хотя бы один раз.
Иногда по какой-либо причине конфигурационная карта aws_auth не применяется автоматически. Поэтому нам нужно добавить их вручную. У меня была эта проблема, поэтому оставьте ее здесь на случай, если она кому-то поможет.
Убедитесь, что вы уже применили aws-auth ConfigMap.
kubectl describe configmap -n kube-system aws-auth
Если вы получаете сообщение об ошибке «Ошибка сервера (NotFound): configmaps« aws-auth »не найден», продолжайте
Загрузите карту конфигурации.
curl -o aws-auth-cm.yaml https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2020-10-29/aws-auth-cm.yaml
Откройте файл в своем любимом текстовом редакторе. Замените <ARN роли экземпляра (не профиля экземпляра)> на имя ресурса Amazon (ARN) роли IAM, связанной с вашими узлами, и сохраните файл.
Примените конфигурацию.
kubectl apply -f aws-auth-cm.yaml
Следите за состоянием ваших узлов и ждите, пока они перейдут в состояние готовности.
kubectl get nodes --watch
Вы также можете перейти на консоль aws и найти добавляемый рабочий узел.
Больше информации здесь