2017-08-17 46 views
0

私はKubernetesで2つのノードをクラスタリングすることができました。マスターノードは正常に動作しているようですが、ワーカーノードでコマンドを実行すると、「サーバーlocalhost:8080への接続が拒否されました - 正しいホストまたはポートを指定しましたか?マスター(ノード1)からサーバlocalhost:8080への接続が拒否されました

、労働者(ノード2)から

$ kubectl get nodes 
NAME  STATUS AGE  VERSION 
node1  Ready  23h  v1.7.3 
node2  Ready  23h  v1.7.3 

$ kubectl get nodes 
The connection to the server localhost:8080 was refused - did you specify the right host or port? 

$ telnet localhost 8080 
Trying ::1... 
telnet: connect to address ::1: Connection refused 
Trying 127.0.0.1... 
telnet: connect to address 127.0.0.1: Connection refused 

$ ping localhost 
PING localhost (127.0.0.1) 56(84) bytes of data. 
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.032 ms 

私はこの問題を解決する方法がわからないです。どんな助けもありがとうございます。私が見る「journalctl -xeu kubelet」、実行するには

: 「CNIは、ネットワークの名前空間のパスを取得できませんでした:終了した容器のためのネットワークの名前空間を見つけることができません」が、これはポッドネットワークをインストールに関連すると思わ...私は上記のエラーのためにできません。

ありがとうございます!

答えて

0

kubectlは、クラスタ管理のためにkube-apiserverとインターフェイスします。このコマンドは、kube-apiserverが実行されているため、マスターノードで動作します。ワーカーノードでは、kubeletkube-proxyが実行されています。

実際、kubectlは、kubernetesノードではなく、クライアント(ラップトップ、デスクトップなど)上で実行されるはずです。

+0

、kubeadmだけで、クライアントシステム上のすべてのノードとkubectlにすべきですか?それでは、クライアントKubectlとどのように繋がりますか? 〜/ .kube/configを渡すことで? – lex

+0

'kubeadm'もあなたのクライアントマシンで実行されますが、私はそれに精通していません。 'kubectl'は確実にクライアントマシン上で実行されることを意図しています。あなたは正しいです:クライアントマシンで '〜/ .kube/config'を設定して、' kubectl'をマスターノードに正しく接続させます。 configで質問を更新すると、私はあなたにそれを手伝うことができます。 –

+0

ありがとうございます。今は大丈夫だと思うようにクラスタを構成することができました。しかし、私はkubectlがマスターノード自体で動いているのと同じ問題に直面しています。私は昨日までkubectlコマンドを実行することができました。私は別のテンプレート 'kind'を試していたのですが、ReplicationControllerテンプレートを実行した後、同じエラーが発生しました: {code} サーバ10.XX.XX.XXX:6443への接続が拒否されました。正しいホストかポート? {code} – lex

2

〜/ .kube/configこのファイルをkubectlコマンドの引数として渡します。その後、kubectlコマンド

などの場合と同様に引数を渡す他のサーバまたはラップトップに設定ファイルをコピーしますので、

kubectl --kubeconfig=~/.kube/config

+0

これは、ネットワークにアクセスできるすべてのコンピュータで動作し、 'worker-nodes'には特別なことはありません。 'worker-nodes'は一般的にkube-apiサーバにアクセスできないので、これを受け入れるべきです。 – Akash

関連する問題