Назад | Перейти на главную страницу

Не удалось подключиться к хосту с помощью RKE

У меня есть следующий файл 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.