仮想Kubernetesクラスターを実装する際の重要な考慮事項

仮想Kubernetesクラスターを実装する際の重要な考慮事項

Kubernetes のコンテキストでは、マルチテナンシーとは、開発やテストなどの環境で複数のチーム、アプリケーション、またはユーザー間で大規模なクラスターを共有することを指し、主に複数のクラスターの管理にかかるコストと運用オーバーヘッドを削減します。マルチテナントは、Kubernetes インフラストラクチャを導入するプラットフォーム チームにとって基本的な要件になりつつあります。

Kubernetes 名前空間を使用したマルチテナントの実装

マルチテナントを実現する最も一般的な方法は、Kubernetes 名前空間を使用することです。 Kubernetes 名前空間は、その名前空間内でのみアクセス可能な Pod、サービス、デプロイメントなどのリソース セットをパーティション分割する簡単な方法を提供します。

プラットフォーム チームは通常、クラスターを管理および操作し、完全なクラスター レベルの権限を持ちます。各チーム、アプリケーション、ユーザーに固有の 1 つ以上の名前空間を作成し、これらの名前空間へのアクセスを開発者、DevOps エンジニア、アプリケーション所有者などのエンドユーザーに制限することで、マルチテナントを実現します。エンドユーザーは、所有権を持つ名前空間に固有の操作のみを実行できます。これは、ほとんどのマルチテナントのユースケースに適しています。ここで、vcluster フレームワークが役立つ場合があります。

Vclusterオープンソースフレームワークを使用したマルチテナント

極端なケースでは、エンドユーザーが日常の開発作業でクラスタースコープのオブジェクト (CRD、イングレス コントローラー、クラスター API サーバーなど) にアクセスする必要があるため、エンドユーザーのアクセスを名前空間のみに制限することは合理的ではありません。通常、Kubernetes API を拡張するためのカスタム リソースとカスタム コントローラーの開発に携わるユーザー、ミューテーションと検証の Webhook を実装するためのアドミッション コントローラー、およびカスタム Kubernetes 構成サービスを必要とする可能性のあるその他のユーザーには、クラスター レベルのアクセスが必要です。 Virtual Cluster (vcluster) は、この問題を解決することを目的としたオープンソース フレームワークです。 vcluster は基本的に、物理クラスター内に作成できる仮想クラスターです。

デフォルトでは、Vcluster は各仮想クラスター インスタンスのホスト クラスター名前空間に K3s クラスター (オプションで k0s、k8s、EKS) をインストールし、API サーバー、コントローラー マネージャー、ストレージ バックエンド、(オプションで) スケジューラーなどのコア Kubernetes コンポーネントをインストールします。エンド ユーザーは仮想クラスター API サーバーと対話し、仮想クラスターへのフル アクセス権を取得しますが、ホスト名前空間に制限され、ホスト クラスター API サーバーにアクセスできないため、リソースの分離とセキュリティが維持されます。プラットフォーム チームは、ホスト クラスター内に名前空間を作成し、ホスト名前空間のリソース クォータとポリシーを構成し、仮想クラスター インスタンスを作成し、仮想クラスターをエンド ユーザーに引き渡します。

Vcluster を導入する前に答えるべき重要な質問

少数のエンド ユーザー グループ向けに vcluster を展開するのは比較的簡単ですが、大規模な vcluster の展開に着手する前に、プラットフォーム チームは次の問題を明確に理解し、組織の自動化、セキュリティ、ガバナンス、コンプライアンスの要件を満たすために vcluster に関するその他のソリューションを実装する必要があります。

1. ホストレベルの名前空間と各名前空間のリソースクォータを作成し、それらを内部ユーザーとチームにマップするにはどうすればよいですか?

vcluster インスタンスを展開する前にホスト名前空間を作成する必要があるため、プラットフォーム チームには名前空間レベルのマルチテナントのソリューションが依然として必要です。

2. 大規模な使用に対応するために vcluster のライフサイクル管理を自動化するにはどうすればよいですか?

プラットフォーム チームは、仮想クラスター インスタンスの作成、変更、削除、仮想クラスター API サーバーのエンド ユーザーへの公開 (Ingress またはロード バランサーを使用)、仮想クラスター Kubeconfig ファイルのエンド ユーザーへの安全な配布、ソフトウェア更新やセキュリティの脆弱性に対応するための仮想クラスター インスタンス (K3) のアップグレードなどの問題に対処する必要があります。

3. 各仮想クラスターで、承認および許可されたクラスター全体のサービスのみが実行されるようにするにはどうすればよいですか?各仮想クラスターに展開されていますか?ドリフトがないことを確認するにはどうすればよいでしょうか?

これらのサービスには通常、セキュリティ プラグイン、ログ記録、監視、サービス メッシュ、イングレス コントローラー、ストレージ プラグインなどが含まれます。

4. 名前空間レベルでホスト名前空間のネットワーク ポリシーを作成するにはどうすればよいですか?

物理クラスターは複数の BU とアプリケーション チーム間で共有される可能性があり、ホスト名前空間間のネットワーク分離が必要となるため、このレベルのネットワーク分離は依然として必要です。

5. 各仮想クラスターに OPA などのセキュリティ ポリシーを実装するにはどうすればよいですか?これらのポリシーはすべての仮想クラスターに展開する必要がありますか?

ほとんどのプラットフォーム チームは、セキュリティ チームからの推奨に基づいて一連のセキュリティ ポリシーを標準化し、それをすべてのクラスターに展開することで、安全な体制を維持しています。

6. 各仮想クラスターの Kubectl 監査ログを取得するにはどうすればよいですか?

一部の組織では、環境に関係なく、Kubectl 監査が重要な要件となります。

7. コスト配分はどのようにすればよいですか?

リソースはさまざまな開発チームによって共有されるため、異なるコスト センターに属する可能性があり、プラットフォーム チームはコストを配分するために適切なチャージバック戦略を実装する必要があります。

8. ArgoCD などの他の開発ツールを vcluster で動作させるにはどうすればよいですか?

ArgoCD などの GitOps ツールでは、アプリケーションをデプロイするためにクラスター アクセスが必要です。エンドユーザーが ArgoCD GitOps デプロイメントを活用できるようにするには、各 vcluster インスタンスを ArgoCD で構成する必要があります。これは、可観測性、ログ記録、監視ツールなどの他の一般的なツールにも当てはまる場合があります。

9. 各 vcluster インスタンスではどのような追加リソースと運用オーバーヘッドが発生しますか?

各仮想クラスターは、本質的には、セキュリティ プラグイン、ログ プラグイン、監視プラグイン、イングレス コントローラーなどのすべてのアドオンを備えた K3s/K8s クラスターです。より多くの仮想クラスター インスタンスを展開すると、各 vcluster Kubernetes リソースとアドオンで大きなオーバーヘッドが発生する可能性があります。同様に、各仮想クラスターは本質的に Kubernetes クラスターであるため、プラットフォーム チームは、Kubernetes バージョンの更新、パッチ管理、アドオン管理のためにこれらのクラスターを管理するために追加のオーバーヘッドが発生する可能性があります。

10. vcluster は実際の運用環境と一致していますか?

組織によっては、開発環境を運用環境と厳密に一致させる必要があります。 vcluster は K8s や EKS などの他のディストリビューションもサポートしていますが、プラットフォーム チームは、実稼働に近いユースケースでスタンドアロン クラスターを実行するのと同等かどうかを確認する必要があります。たとえば、EKS は、サードパーティの CNI、さまざまなストレージ クラス、自動スケーリング、IRSA、アドオンなど、仮想 EKS クラスターでは利用できない可能性のある多くの高度な機能をサポートしています。

結論は

ほとんどのプラットフォーム チームにとって、名前空間ベースのマルチテナント機能と、名前空間のライフサイクル管理、セキュリティ、コスト管理に関する追加の自動化により、マルチテナント機能のユース ケースが解決されます。 vcluster は、Kubernetes 名前空間のマルチテナントにおける特定のギャップに対処します。これにより、クラスター レベルの権限を持たないエンド ユーザーが、仮想クラスター内のクラスター スコープのオブジェクトにアクセスできるようになります。プラットフォーム チームは、エンド ユーザーの間でそのような要件が存在するかどうかを内部で検証し、セキュリティ、コンプライアンス、ガバナンスの要件に基づいて徹底的な費用対効果分析を実行し、追加の自動化を実装して、展開が成功するようにする必要があります。

<<:  サービスメッシュ: Kubernetes の使用コストに影響を与える諸刃の剣

>>:  Tianyiフルスタックハイブリッドクラウドが3つの信頼できるクラウド評価に合格し、その能力が認められました

推薦する

SEO市場の潜在的なデメリットの簡単な分析:不正行為

今日の物質主義の世界では、SEO テクノロジーは人々が利益を追求するための手段となっています。自社の...

WeChatパブリックアカウントの闇ビジネスチェーンを暴く

11月16日、万達グループは正式に北京市裁判所に訴訟を起こし、微信(ウィーチャット)の公式アカウント...

SEO効果評価指標について

ビジネス目標を決定することは、SEO プロジェクトを開始する前に実行できる最も重要なことの 1 つで...

静的、動的、疑似静的の URL 構造のうち、どれが SEO に効果的ですか?

静的、動的、疑似静的の URL 構造のうち、どれが SEO に効果的ですか? SEO に詳しい人なら...

2020 年のクラウド コンピューティングの予測: セキュリティ、AI、Kubernetes など

[51CTO.com クイック翻訳] クラウド技術はずっと前に天井を突破し、ずっと急上昇し続けていま...

エンタープライズクラウドコンピューティング導入の10の実践経験

IT 業界の業界団体 CompTIA によれば、現在、企業の 80% が、オンデマンドで起動できる仮...

friendhosting: 中国語インターフェースの追加、米国に8つのデータセンターなど - 無制限のトラフィックVPS、すべて50%オフ

中国市場を拡大するために、friendhostingは「ロシア語、ドイツ語、フランス語、英語」に続い...

真相を突き止める: 内部ページが含まれていないのはなぜですか?

ウェブサイトの内部ページがインクルードされないことは、ウェブマスターを悩ませる大きな問題です。一般的...

ブランドマーケティングの根底にあるロジック

ポストトラフィック時代では、モバイルインターネットと消費者インターネットの配当は消え、コンテンツ電子...

justhost UK VPS はいかがでしょうか?内部環境の測定データの共有

justhost.asia は英国ロンドンにデータセンターを開設し、英国 VPS サービスを提供して...

過剰な最適化が降格につながる理由は何ですか?

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービスウェブサイトが降格される...

テンセントモバイル広告連盟の控えめな内部テストは、市場の大きな再編につながる可能性がある

複数のモバイル開発者が記者に対し、業界で長らく噂されていたテンセントの「広電通」モバイル広告連合が最...

KubernetesベースのJenkinsサービスもDockerに移行可能

[[383773]]この記事はWeChatの公開アカウント「Ask Qi」から転載したもので、著者は...

ウェブサイトの診断と分析方法についての簡単な説明

みなさんこんにちは。私は湖南省出身のキネスです。今日は、主にウェブサイト戦略、ウェブサイトディレクト...