web-dev-qa-db-ja.com

Kube-state-metrics error:Failed to create client:... i / o timeout

私は仮想マシンでKubernetesを実行しており、基本的なチュートリアルを現在行っています PHP/Redis Guestbook example)にロギングとメトリックを追加 。私はインストールしようとしていますkube-state-metrics:

git clone https://github.com/kubernetes/kube-state-metrics.git kube-state-metrics
kubectl create -f kube-state-metrics/kubernetes

しかし失敗します。

kubectl describe pod --namespace kube-system kube-state-metrics-7d84474f4d-d5dg7

...

警告異常な28m(x8が30mを超える)kubelet、kubernetes-node1準備プローブが失敗しました:Get http://192.168.129.102:8080/healthz :dial tcp 192.168.129.102:8080:connect:connection refused

kubectl logs --namespace kube-system kube-state-metrics-7d84474f4d-d5dg7 -c kube-state-metrics

I0514 17:29:26.980707 1 main.go:85]デフォルトのコレクターの使用
I0514 17:29:26.980774 1 main.go:93]すべての名前空間を使用
I0514 17:29:26.980780 1 main.go:129] metric white-blacklisting:blacklisting the following items:
W0514 17:29:26.980800 1 client_config.go:549] --kubeconfigも--masterも指定されていません。 inClusterConfigを使用します。これは機能しない可能性があります。
I0514 17:29:26.983504 1 main.go:169]サーバーとの通信のテスト
F0514 17:29:56.984025 1 main.go:137]クライアントの作成に失敗しました:apiserverとの通信エラー:Get https://10.96.0.1:443/version?timeout=32s =:tcp 10.96.0.1:443をダイヤル:I/Oタイムアウト

この10.96.0.1 IPが正しいかどうかはわかりません。私の仮想マシンは、ブリッジネットワーク10.10.10.0/24およびホストオンリーネットワーク192.168.59.0/24にあります。 Kubernetesを初期化するときに、引数--pod-network-cidr=192.168.0.0/16を使用したので、これが予想されるもう1つのIP範囲です。しかし、10.96.0.1は見慣れないものに見えます。

私はKubernetesを初めて使用するので、基本的なチュートリアルを行っているだけなので、今何をしたらよいかわかりません。それを修正する方法またはさらに調査するには?


編集-追加情報:

kubectl get nodes -o wide

NAME                STATUS   ROLES    AGE   VERSION   INTERNAL-IP   EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION      CONTAINER-RUNTIME
kubernetes-master   Ready    master   15d   v1.14.1   10.10.10.11   <none>        Ubuntu 18.04.2 LTS   4.15.0-48-generic   docker://18.9.2
kubernetes-node1    Ready    <none>   15d   v1.14.1   10.10.10.5    <none>        Ubuntu 18.04.2 LTS   4.15.0-48-generic   docker://18.9.2
kubernetes-node2    Ready    <none>   15d   v1.14.1   10.10.10.98   <none>        Ubuntu 18.04.2 LTS   4.15.0-48-generic   docker://18.9.2

クラスターの初期化に使用したコマンド:

Sudo kubeadm init --apiserver-advertise-address=192.168.59.20 --pod-network-cidr=192.168.0.0/16
17
Rafał G.

この理由はおそらく、ポッドネットワークとNode network-が重複しているためです。ポッドネットワークCIDRを192.168.0.0/16に設定します。これは、アドレスが192.168であるため、ホストオンリーネットワークが含まれます。 59.0/24。

これを解決するには、ポッドネットワークのCIDRを192.168.0.0/24(に変更します。これにより、ポッドネットワークに255のアドレスのみが提供されるため、お勧めしません

Calicoに別の範囲を使用することもできます。実行中のクラスターで実行する場合は、ここに 手順 を指定します。

また、私が試した他の方法:

calicoを編集 manifest を別の範囲に(たとえば10.0.0.0/8)-Sudo kubeadm init --apiserver-advertise-address=192.168.59.20 --pod-network-cidr=10.0.0.0/8)とinitの後に適用します。

別の方法は、Flannel(10.244.0.0/16を使用)のような異なるCNIを使用することです。

CNIプラグインの範囲に関する詳細情報 こちら をご覧ください。

1
aurelius