web-dev-qa-db-ja.com

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]

マシンでポート22を開いているため、SSHトンネリングが機能しない理由がわかりません。また、httpトラフィック用にマシンでポート80を開いています。これは、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キーを持っていることを確認しましたが、それらを自分の構成ファイルに追加する必要があるかどうか、またはそれがどのように機能するかわかりません。

2
AndreasKralj

どのような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キーを使用する場合は、いくつかの点に注意してください。最も重要なのは、正しい許可(秘密鍵で600)です。これを確認するには、rkeを実行したのと同じユーザーとして接続し、

ssh -i /home/rke/.ssh/id_rsa [email protected]

これは機能するはずです。そうしないと、より詳細なエラー情報が表示されます。動作する場合は、docker psを実行してみてください。ユーザーがdockerグループのメンバーでない場合にも、同様のエラーが発生しました。この場合、Dockerソケット経由で接続するための十分な権限がありません。

2
Lion