Не удается связаться с рабочими узлами EKS с помощью ssh при установке с помощью eksctl

После создания кластера EKS в AWS с помощью инструмента eksctl было невозможно получить доступ к рабочим машинам с помощью ssh. Что не так?

Marcs-MBP:kubernetes tests marc$ eksctl create cluster --name=mycluster --ssh-public-key=~/.ssh/id_rsa.pub 
2018-10-08T08:09:17+02:00 [ℹ]  setting availability zones to [us-west-2c us-west-2b us-west-2a]
2018-10-08T08:09:17+02:00 [ℹ]  using "ami-08cab282f9979fc7a" for nodes
2018-10-08T08:09:17+02:00 [ℹ]  creating EKS cluster "mycluster" in "us-west-2" region
2018-10-08T08:09:17+02:00 [ℹ]  will create 2 separate CloudFormation stacks for cluster itself and the initial nodegroup
2018-10-08T08:09:17+02:00 [ℹ]  if you encounter any issues, check CloudFormation console or try 'eksctl utils describe-stacks --region=us-west-2 --name=mycluster'
2018-10-08T08:09:17+02:00 [ℹ]  creating cluster stack "eksctl-mycluster-cluster"
2018-10-08T08:21:12+02:00 [ℹ]  creating nodegroup stack "eksctl-mycluster-nodegroup-0"
2018-10-08T08:24:54+02:00 [✔]  all EKS cluster resource for "mycluster" had been created
2018-10-08T08:24:54+02:00 [✔]  saved kubeconfig as "/Users/marc/.kube/config"
2018-10-08T08:24:56+02:00 [ℹ]  the cluster has 0 nodes
2018-10-08T08:24:56+02:00 [ℹ]  waiting for at least 2 nodes to become ready
2018-10-08T08:25:29+02:00 [ℹ]  the cluster has 2 nodes
2018-10-08T08:25:29+02:00 [ℹ]  node "ip-192-168-121-173.us-west-2.compute.internal" is ready
2018-10-08T08:25:29+02:00 [ℹ]  node "ip-192-168-228-63.us-west-2.compute.internal" is ready
2018-10-08T08:25:32+02:00 [ℹ]  kubectl command should work with "/Users/marc/.kube/config", try 'kubectl get nodes'
2018-10-08T08:25:32+02:00 [✔]  EKS cluster "mycluster" in "us-west-2" region is ready

Теперь добавлен доступ SSH из любого места в группу безопасности: sg-09a1acc782f2222cd с именем eksctl-mycluster-nodegroup-0-SG-4KUHPKAY90D1.

Marcs-MBP:kubernetes tests marc$ ssh -i ~/.ssh/id_rsa.pub ec2-user@ec2-35-166-200-64.us-west-2.compute.amazonaws.com
The authenticity of host 'ec2-35-166-200-64.us-west-2.compute.amazonaws.com (35.166.200.64)' can't be established.
ECDSA key fingerprint is SHA256:dDeYNRVqovc+pb3oEm271J4K+2OAcFvXSddUoZJTHRk.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'ec2-35-166-200-64.us-west-2.compute.amazonaws.com,35.166.200.64' (ECDSA) to the list of known hosts.
ec2-user@ec2-35-166-200-64.us-west-2.compute.amazonaws.com: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
Marcs-MBP:kubernetes tests marc$ 

Мне неясно, как добраться до моих рабочих машин с помощью ssh. Кто-нибудь, кто знает, что идет не так?

Использование версии eksctl

Marcs-MacBook-Pro:~ marc$ eksctl version
2018-10-08T08:44:49+02:00 [ℹ]  versionInfo = map[string]string{"builtAt":"2018-09-12T14:57:03Z", "gitCommit":"2f553a2c54eb1390a7eb6746ccdc5da106fe518b", "gitTag":"0.1.2"}

0 ответов

Вам необходимо указать --ssh-access вариант при запуске eksctl create cluster, После того, как вы указали, вы можете увидеть следующее сообщение журнала во время создания:

[ℹ]  importing SSH public key "/home/<USER_NAME>/.ssh/id_rsa.pub" as "eksctl-xxx-nodegroup-ng-a4cd5bb2-xx:xx:xx:xx:xx:xx:xx"

Затем вы можете зайти на хост через ssh пользователем ec2:

 ssh -i /home/<USER_NAME>/.ssh/id_rsa.pub ec2-user@ec2-xx-xx-xx-xx

ssh вариант -i принимает закрытый ключ, соответствующий открытому ключу, тогда как вы передали имя файла, который содержит сам открытый ключ.

Пытаться

ssh -i ~/.ssh/id_rsa ec2-user@ec2-35-166-200-64.us-west-2.compute.amazonaws.com

Кстати, ~/.ssh/id_rsa обычно это закрытый ключ по умолчанию, поэтому простой

ssh ec2-user@ec2-35-166-200-64.us-west-2.compute.amazonaws.com

также должен работать.

Другие вопросы по тегам