2016-04-11 9 views
0

すべてが高可用性であり、DNSがシステムの重要な部分であり、すべてがDNSに依存するKubernetesクラスタ。kube2sky複数のAPIサーバを持つkubernetes

ポッドkube2skyにはパラメータ「-kube_master_url」があります。ここでafaikは1つのapiサーバノードしか指定できません。

サービスの冗長性のために複数のapiサーバがあるかもしれませんが、kube2skyが使用しているサーバがダウンすると、DNSシステム全体がダウンしてしまうため、クラスタの可用性はなくなります。

他のポッドの場合は、apiサーバサービスの内部DNS名を使用できますが、この場合は実際のDNSサービスであるため、できません。

どのようにすればこの問題を解決できますか?

答えて

2

標準設定では、kube2skyは実際には使用する単一のAPIサーバのIPアドレスに依存しません。代わりに、すべてのクラスタで自動作成され、kube-proxyがiptablesルールを設定するサービスのkubernetesの仮想IPを使用します。それはbriefly explained in the docs on githubです。

また、このような高可用性構成では、クライアントツールでこのような問題を回避するためにit's recommended that replicated masters are put behind a load balancerがあります。

+0

しかし、kubernetesサービスはポート443を使用するため、kube2skyは接続する証明書を必要とします。それらを設定する方法はありますか?または、私は何か間違っているのですか? – victorgp

+1

https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/dns/kube2skyで説明されている '--kubecfg-file'オプションを使用してください。これにより、CAと証明書とマスターのエンドポイントを指定できます。 kubeletを実行しているホストで使用されているのと同じ設定ファイルを使用することで、設定ファイルを含むディレクトリをポッドにマウントすることができます。 –

+0

それはいいと思う、私はそれを試みる – victorgp