0

kubernetesを大規模な物理サーバ(24コア)に導入したいと思っています。kubernetesデプロイメントのベアメタルサーバを仮想化するか仮想化しない

ベアメタル上での実行以外のk8sクラスタ用の仮想マシンの作成の長所と短所は何ですか?

は、私は次の考慮事項があります。

  • 作成VMSは、作業負荷の分離を可能にします。実験用の新しいvmsを作成し、開発者に割り当てることができます。
  • 一方、ベアメタル上で実行されているk8では、実験用に開発者ごとに新しいNAMESPACEを作成し、その中でコードを実行することができます。すべてのコードがドッカーのコンテナで実行されているはずです。

セキュリティ:

  • 持つVMを行うことができるダメージの量を制限し、将来のメンテナに与えられたアクセスの量を制限します。一方、将来のメンテナーにとっての主なタスクはノードの追加/削除であり、ベアメタルアクセスが必要です。

認証:自分のコードは、CIのパイプラインを介して実行し、その実行中の展開が展開されている場合にのみ、サーバーに触れるだろう瞬間の開発者で

  • 。しかし、ログを見るのはどうですか?私たちは階層型のkubectl認証を設定して、devsに割り当てられている名前空間にのみアクセスできるようにすることができますか(これはk8s名前空間認可プラグインで可能であるはずです)。

サーバには、すでに多数のvmsが存在します。これは問題だろうか?

答えて

1

128コアと疑問....これは、単一のサーバー用のコアです。

しかし、これは関係ありません。 Kubernetesは、異なるサイズのサーバーを使用して最大限に利用することができます。ただし、単一サーバー上でマスターサーバープロセスとノード/ワーカープロセスを結合すると、不要なリソースの問題が発生する可能性があります。すでに言及したように、名前空間を持つものを管理することができます。

私たちがやることは、変更が独自の名前空間を持つ単一のdev/qa kubernetes環境(これで多くの名前空間を実行する)で名前空間との継続的な統合を行い、それらの名前空間に完全環境配備を実行することです。これを管理するためにシェルスクリプトの束が使われています。これは、あなたが持っているものとして大きなサーバーで動作するだけでなく、小さな(または仮想)ボックスでも動作します。仮想化の利点は、大きなボックスを小さなものに分割することにあります。他の目的にも使用でき、その後はkubernetesだけで使用できます(MS Windows以外のkubernetes、デスクトップ、VPN目的のカーネルモジュールなどはありません)。 )。

+0

修正24コア128GB RAM: – Jonathan

1

私はdevとprodを別々のVMの形式で分けます。ドッカー内にwebappがあって、あまりにも多くのスレッドを使用していたので、ホスト上のドッカーデーモンがクラッシュしました。幸いにも1ホストに限られていた。限界を設定することでこれを守ることができますが、それは危険です:開発者の間違いの1つは恐ろしいものです。

0

答えは「それは依存している」と思います。それは本当に答えではありません。個人的には、私はVMを使用してマシンを分割し、その方法で展開します。どれだけ多くのサーバーリソースを掘り起こし、新しい環境を簡単に作成してから簡単に破棄できるかという点で柔軟性があります。

これらの仮想マシンが本当に大きい場合でも、既存のVMがマシン上にあることを考えれば、さらに管理しやすくなります。

しかし、単一のノードサーバーを稼働できないという技術的理由はありませんが、アップグレード(問題がある場合)とそのサーバーのパッチ適用または再起動が必要な場合は、ダウンタイムに問題が発生する可能性があります、クラスタ全体がダウンしています。

私はHAと稼働時間のためのあなたの環境のニーズ、そして(もしあなたがそのルートに行くならば)VMをどのように配備するのかを見て、あなたに最適なものを決定します。