Kubernetes はダウンロードして実行するのは無料ですが、所有するのにコストがかかるわけではありません。 単純な意味でのみ「無料」である他の主要なオープンソース プラットフォームと同様に、Kubernetes の導入と運用にはほぼ確実に費用がかかります。
費用の額は、Kubernetes の導入方法や、Kubernetes の管理に使用するツールやプロセスなど、さまざまな要因によって異なります。 一部の組織では、Kubernetes はほぼ無料で利用できます。 他の人にとっては、独自のソフトウェア プラットフォームよりも総費用がはるかに高くなる可能性があります。
この記事では、Kubernetes がチームにどれくらいのコストをもたらすかを評価できるように、Kubernetes の費用に影響する要因と、Kubernetes の総額コストを決定する方法について説明します。
Kubernetes インストールの総コストを計算するには、Kubernetes コストに影響する各要素を考慮する必要があります。 これらはすべてあらゆる状況に当てはまるわけではありませんが、コスト効率の高い Kubernetes 戦略を設計する際に考慮すべき変数です。
たとえば Linux とは異なり、完全に無料でコミュニティによってサポートされている Kubernetes ディストリビューションというものは実際には存在しません。 ( Red Hat がスポンサーとなっているコミュニティ ディストリビューションであるOKD は例外となる場合があります。) 代わりに、さまざまな商用 Kubernetes ディストリビューションが存在します。 それらのほとんどは、小規模なクラスターに対しては無料レベルを提供していますが、実稼働レベルのインストールや専門的なサポート サービスには料金がかかります。
したがって、Kubernetes で考慮すべき最初のコスト要因は、使用するディストリビューションに関連するライセンス料金です。 12 個以下のノードのクラスターを実行する予定がない限り、ディストリビューションの料金を支払う必要があります。
Kubernetes を実行するにはサーバーが必要です。 これらのサーバーをノードに変換し、それを使用してクラスターを構築します。
ノードは、独自のオンプレミス サーバー上に配置することも、クラウド ベースのサーバー上に配置することもできます。 どちらにしても、料金を支払うことになります。
当然のことながら、Kubernetes インフラストラクチャに関連するコスト構造は、使用するサーバーの種類によって異なります。 オンプレミスのハードウェアの場合、初期取得コストは大きいものの、その後の継続的なメンテナンス コストは比較的小さくなります。 クラウド サーバーの場合、初期資本支出は発生しませんが、毎月継続的な料金を支払うことになります。
自分で管理する仮想マシンを使用してクラウドで Kubernetes を実行する場合、(ほとんどの場合) ノードを動かす仮想サーバーの料金だけでなく、データ送信に関連するネットワーク料金も支払う必要があります。
一般に、ほとんどのデータを同じクラウド内に保持するクラスターの場合、これらのコストは比較的低くなります。 ただし、Kubernetes を使用してクラウドから大量のデータを送信するアプリケーションをホストする場合、送信料金は増加します。
同様に、Kubernetes データをホストするためのストレージに対しても料金を支払う必要があります。 ステートレス アプリのみを実行する場合、データ ストレージのニーズとコストは少なくなります。 しかし、数ギガバイトのデータを取り込んだり生成したりするアプリの場合は、すべてをホストするために独自のオンプレミス ストレージ メディアの料金を支払うか、クラウド ストレージ サービスでホストする必要があります。
Kubernetes データもバックアップする必要があると思われますが、データのコピーを複数保持する必要があるため、全体的なストレージ コストが簡単に 2 倍または 3 倍になる可能性があります。
チームは Kubernetes クラスターの保守に時間を費やす必要があります。 費やす時間は、Kubernetes ディストリビューションが提供するメンテナンスと管理のサポートの量によって異なります。 Canonical Kubernetes や OpenShift Dedicated などの一部のディストリビューションでは、広範囲にわたる完全に管理された Kubernetes サービスが提供されています。 基本的な OpenShift などの他のシステムでは、メンテナンスの負担の大部分はユーザーにかかることになります。
サードパーティの Kubernetes 管理サービス (Platform9 など) を使用して、管理ワークフローの多くを自動化することもできます。 しかし、エンジニアは依然として管理に関与する必要があります。 Kubernetes エクスペリエンスを完全に手動で実行できるものはありません。
したがって、Kubernetes を管理するためのスタッフの時間に関連する費用は大幅に異なる可能性がありますが、常に存在します。
アプリケーションをクラスターに迅速にデプロイできるほど、Kubernetes から得られる価値が高まり、Kubernetes 戦略のコスト効率が高まります。 そのため、デプロイメント プロセスがどのようなものか、どの程度手動で行われるか、1 日または 1 週間あたりに処理できるリリースの数について検討する価値があります。 これはやや無形のコストですが、1 週間に 1 回のデプロイメントしか管理できないアプリケーション デプロイメント パイプラインでは、1 日に 1 回以上デプロイメントできるパイプラインよりも、デプロイメントあたりのコストがはるかに高くなります。
Kubernetes が無料になるのは、サーバー、ネットワーク、ストレージ ソリューション、従業員がすべて無料で業務を行っている場合のみですが、おそらくそうはなりません。 そのため、Kubernetes 戦略にコミットする前に、Kubernetes のコストに影響を与えるさまざまな要素を評価し、採用するアプローチによって費用が最小限に抑えられ、クラスターに必要なパフォーマンスが達成されることを確認することが重要です。
Volterra が役に立ちます。 Volterra は、ホストに使用するインフラストラクチャの種類 (単一クラウド、マルチクラウド、オンプレミスなど) に関係なく、あらゆる Kubernetes クラスターを監視するためのアプリとインフラ管理プラットフォームを提供することで、Kubernetes の計画と管理における推測作業を大幅に削減します。 Volterra によって Kubernetes クラスターが完全に無料になるわけではありません (インフラストラクチャ、ライセンス、スタッフの時間に対しては引き続き料金が発生します)。ただし、Kubernetes の展開と管理に必要な労力が軽減され、アプリケーションの展開速度が向上します。 これにより、Kubernetes の総コストが削減され、全体的な価値が向上します。