2015-12-11 12 views
5

私は複数のapiserversを持つクラスタ設定を使用しています。複数のapiserversでkube-proxy master_urlを設定する方法

High Availability Kubernetes Clustersドキュメントに記載されているように、私はクラスタ内でkubernetesサービスを利用する内部ロードバランスを使用したいと思います。これまでのところうまく動作しますが、私はkube-proxyを設定する最良の方法は何か分かりません。 apiserver(master)からのデータに基づいてこのサービスへのプロキシを実行するので、明らかにサービスIPは使用できません。私はapiserversのいずれかのIPを使用することができますが、これは高可用性を失う原因になります。だから、私が現在見る唯一の実行可能なオプションは、私の外部ロードバランサを利用することですが、これは何とか間違っているようです。

他のアイデアやベストプラクティスはありますか?

答えて

1

これはかなり古い質問ですが、問題が続く...ここにあります。

は、それが常にリストの最初のIP/URLをピックアップして、複数のIP/URLを使用することはできませんKubernetesのrestclient、バグがあります。これはkube-proxyやkubeletにも影響し、マルチマスターセットアップでロードバランサーを使用しないと、これらのツールで単一の障害点が残ってしまいます。このソリューションは、おそらく最もエレガントなソリューションではないでしょうが、現在(私はそう思っていますが)簡単なソリューションです。

他の解決方法(私は好きですが、誰にでもうまくいかず、すべての問題を解決するわけではありません)は、APIサーバーのラウンドロビンになるDNSエントリを作成することですが、下のリンクの1つロードバランシングだけを解決し、HAは解決しません。

あなたは以下のリンクでは、この物語の進行状況を見ることができます

KUBE-プロキシkubelet /発行:https://github.com/kubernetes/kubernetes/issues/18174
restclientのPR:https://github.com/kubernetes/kubernetes/pull/30588
"公式" ソリューション:https://github.com/kubernetes/kubernetes/issues/18174#issuecomment-199381822

0

私はpodmasterが決定127.0.0.1/localhostの

上のマスターに設定されることを意図されている方法は、あなたがKUBE-プロキシ各マスターノード上を持っているということだと思うので、各KUBE-プロキシポイントどのapi-serverが実行されるべきかは、そのマスターのローカルプロキシを使用します。

+0

について最初の点:はい、私はそう思います。私はすでに各マスターでkube-proxyを実行していますが、これはローカルマスターを指しています。私の問題は、マスターノード上のkube-proxyではなく、ワーカーノード上の問題です。それらには接続するローカルマスターがありません。 第2のポイントは、afaik、間違っています。 podmasterは、ドキュメントに従って、スケジューラとコントローラマネージャがどのインスタンス化されるかを決定するためにのみ使用され、apiserverはすべてのマスタインスタンスで実行されます。 –

関連する問題