kubernetesはオンプレか?クラウドか?
kubernetesをオンプレミス環境に構築するメリット
kubernetesの環境を準備する際に、最もベーシックとなる方法はオンプレミス環境への構築です。 (またの名をセルフホスティングといいます。)
これはkubernetesのソフトウェアを会社で所有しているマシンに直接インストールする方法です。 所有しているマシンに直接インストールするため、スペックの選択からOSの選択など融通が利くのが特徴です。(クラウド上だとOSに制限がある場合がある)
最大の柔軟性とコントロールが得られる選択肢ではありますが、重大なマイナス面も存在します
kuberenetesをオンプレミス環境に構築するデメリット
kubernetesをオンプレミス環境に構築する場合、クラウド環境であれば必要なかった以下の作業が必要となります。
- 大量のリソースが必要になる
- 満たさなければならない非機能要件が大量にある
大量のリソースが必要になる
kubernetesをセルフホスティングする場合、以下の要素で大量のリソースが必要となります。 これらのリソースをすべて確保しておくことは難しいでしょう。
- 人員
- スキル
- エンジニア稼働時間
- 保守作業員
- トラブルシューティング
- インフラエンジニア
満たさなければならない非機能要件
また、kubernetesのクラスタが以下の非要件を抑えているかどうかも確認しておく必要があります。
- コントロールプレーン、ワーカーノードが配置されるサーバーはすべて高可用性を備えているでしょうか?停電が発生した時にサービスは止まらないでしょうか?
- クラスタのセキュリティ要件は確保されているでしょうか? 内部のコンポーネント同士が暗号化されるSSL通信を使用しているでしょうか?サーバーへのアクセス権限は適切に管理されているでしょうか?
- クラスタ内のデータベースはバックアップされるでしょうか?
要は、大量のハードウェアに存在する大量のワーカーノードに対してセキュリティが確保されており、万が一の停電などのアクシデントにも対応できる必要があるのです。
クラウド環境一択
上記のkubernetsのセットアップに要するリソースを考えればKubernetesを利用するにはクラウド環境を利用するのがメインとなる選択肢でしょう。