У меня есть следующий файл cluster.yml:
nodes:
- address: 172.16.20.22
user: rke
role:
- controlplane
- etcd
- worker
При выполнении rke up
, Я получаю следующую ошибку:
INFO[0000] Building Kubernetes cluster
INFO[0000] [dialer] Setup tunnel for host [172.16.20.22]
WARN[0000] Failed to set up SSH tunneling for host [172.16.20.22]: Can't retrieve Docker Info: error during connect: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.24/info: Unable to access node with address [172.16.20.22:22] using SSH. Please check if you are able to SSH to the node using the specified SSH Private Key and if you have configured the correct SSH username. Error: ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain
WARN[0000] Removing host [172.16.20.22] from node lists
FATA[0000] Cluster must have at least one etcd plane host: failed to connect to the following etcd host(s) [172.16.20.22]
Я не уверен, почему SSH-туннелирование не работает, поскольку на моем компьютере открыт порт 22. У меня также есть порт 80, открытый на моем компьютере для HTTP-трафика, что можно увидеть в выводе firewalld:
public (active)
target: default
icmp-block-inversion: no
interfaces: ens192
sources:
services: ssh dhcpv6-client http
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
Кто-нибудь знает, почему моя конфигурация cluster.yml не работает должным образом? Я подтвердил, что и у моего пользователя rke, и у пользователя root есть SSH-ключи, которые работают через SSH, но я не уверен, нужно ли мне добавлять их в мой файл конфигурации или как это работает.
Какую аутентификацию SSH вы используете? Кажется, что ваш SSH-сервер принимает только SSH-ключи. Это нормально, если у rke есть действующий ключ, который необходимо указать в конфигурации (глобально или для каждого узла):
nodes:
- address: 172.16.20.22
user: rke
ssh_key_path: "/home/rke/.ssh/id_rsa"
role:
- controlplane
- etcd
- worker
Если ключ уже указан и отсутствует только в конфигурации, которую вы разместили здесь, проверьте, работает ли ключ. При работе с ключами SSH следует помнить о нескольких вещах. Наиболее важными являются разрешение corect (600 на закрытый ключ). Чтобы проверить это, просто подключитесь от имени того же пользователя, что и вы запустили rke, и попробуйте
ssh -i /home/rke/.ssh/id_rsa rke@172.16.20.22
Это должно сработать, иначе вы получите более подробную информацию об ошибке. Если это сработает, попробуйте выполнить docker ps
. У меня была аналогичная ошибка, когда пользователь не является членом docker
группа. В этом случае у него недостаточно прав для подключения через сокет Docker.