2016-06-17 14 views
3

Kubernetesマスターノードを展開するための多数の実行スルーには、--register-schedulable=falseを使用して、ユーザーポッドがマスターノードにスケジュールされないようにすることをお勧めします(例:https://coreos.com/kubernetes/docs/latest/deploy-master.html)。非常に小さなKubernetesクラスタでは、絶対的に必須でない限り、ノード全体がポッドスケジューリングに使用されるのを効果的に防止するために、計算リソースが多少無駄に見えます。Kubernetesマスターノードでユーザーポッドを実行する際に問題がありますか?

この質問(Will (can) Kubernetes run Docker containers on the master node(s)?)への答えは、マスターノード上のユーザーポッドを実行することが実際に可能であることを示唆している - が、これを可能に関連するすべての問題があるかどうか対応していません。

私は、これはマスターノード上のポッド(http://kubernetes.io/docs/admin/master-node-communication/https://github.com/kubernetes/kubernetes/issues/13598を参照)安全でない通信と思われるということであることが可能に関連する問題があるかもしれません示唆して日付を見つけることができました情報のみ。私は、これが潜在的にマスターノード上で走っている不正なポッドが非マスターノード上のポッドに通常はアクセスできないKubernetes機能にアクセス/ハイジャックする可能性があると考えています。たぶん誰かがポッド/コンテナへのアクセスをハッキングし、それによってマスターノードにアクセスする可能性があるとは思うが、内部的に開発されたポッド/コンテナしか実行していないのではないだろうか。

このシナリオに関連して潜在的な危険性があると思われます(ユーザーポッドをKubernetesマスターノードで実行できるようにします)?そのような設定に関連するその他の潜在的な問題はありますか?

答えて

2

マスターノードでポッドを実行することは間違いありません。

あなたが言及するセキュリティ上のリスクは1つの問題ですが、サービスアカウントを設定すると、展開されたすべてのポッドが安全なローカルアクセスと安全なリモートアクセスを持つことはありません。

もう1つの問題は、リソースの競合です。マスターノード上でマスターコンポーネントを混乱させる不正なポッドを実行すると、クラスタ全体が不安定になる可能性があります。明らかに、これは本番環境での配備の問題ですが、開発/実験環境で少数のノードの使用率を最大限に引き出そうとしている場合は、マスター上で2つの追加のポッドを実行すると問題はありません。

最後に、マスターノードに十分大きなポッドcidrが割り当てられていることを確認する必要があります。一部のデプロイメントでは、マスターは/ 30を取得するだけで、多くのポッドを実行することはできません。

関連する問題