概要
概要
概要
第1章 Red Hat Advanced Cluster Management for Kubernetes へようこそ
Kubernetes は、一貫性のある標準コントロールプレーンでコンテナーをデプロイし、管理するためのプラットフォームを提供します。ただし、アプリケーションのワークロードが開発環境から実稼働環境に移動するにつれて、DevOps のパイプラインをサポートするために、目的に合った Kubernetes クラスターが複数必要になることが頻繁にあります。
注記: 当 Red Hat 製品を使用するには、ライセンスとサブスクリプション契約が必要です。
管理者やサイト信頼性エンジニア (SRE) などのユーザーは、Kubernetes クラスターを稼働する複数のデータセンター、プライベートクラウド、パブリッククラウドなど、さまざまな環境で作業を行うにあたり、課題に直面しています。Red Hat Advanced Cluster Management for Kubernetes には、このような共通の課題に対処するツールや機能が含まれています。
Red Hat Advanced Cluster Management for Kubernetes では、お使いの Kubernetes 環境を管理するために、管理状況をエンドツーエンドで視覚的に確認して制御できます。クラスターの作成やアプリケーションライフサイクルの管理機能でアプリケーションモダナイゼーションプログラムを管理し、データセンターやハイブリッドクラウド環境にまたがる全クラスターやアプリケーションのセキュリティーとコンプライアンスを確保します。クラスターおよびアプリケーションはすべて、同梱のセキュリティーポリシーを使用して、1 つのコンソールから表示でき、管理できます。Red Hat OpenShift が稼働する場所であればどこからでも操作し、お使いの環境で Kubernetes クラスターを管理できます。
以下で Red Hat Advanced Cluster Management for Kubernetes コンソールの Welcome ページ の画像を確認してください。ヘッダーには、Applications アイコンが表示され、OpenShift Container Platform に戻り、Visual Web ターミナルなどにアクセスできます。タイルは、製品の主な機能を記述し、重要なコンソールページにリンクします。
Red Hat Advanced Cluster Management for Kubernetes では以下を実現できます。
- Kubernetes クラスターを稼働する複数のデータセンター、プライベートクラウド、パブリッククラウドなど、さまざまな環境で機能する。
- Kubernetes クラスターを簡単に作成し、1 つのコンソールでクラスターのライフサイクルを管理できる。
- Kubernetes がサポートするカスタムリソース定義を使用して、ターゲットクラスターでポリシーを有効にする。
- クラスターランドスケープ全体に分散されているビジネスアプリケーションの「Day 2 Operation (Day 2 運用)」をデプロイして維持する。
本書では、Kubernetes の概念および用語に精通していることを前提としています。Kubernetes の概念に関する情報は、Kubernetes ドキュメント を参照してください。
この製品に関する詳細は、以下のドキュメントを参照してください。
1.1. マルチクラスターアーキテクチャー
Red Hat Advanced Cluster Management for Kubernetes は、クラスターへのアクセスおよび管理に使用される複数のマルチクラスターコンポーネントで構成されます。以下のセクションでは、アーキテクチャーの詳細を説明します。その後、リンク先に移動して、詳細なドキュメントを参照してください。
Red Hat Advanced Cluster Management for Kubernetes の以下のコンポーネントについて詳しく説明します。
- ハブクラスター
- マネージドクラスター
- クラスターライフサイクル
- アプリケーションライフサイクル
- ガバナンスおよびリスク
1.1.1. ハブクラスター
ハブ クラスターは、Red Hat Advanced Cluster Management for Kubernetes クラスターで実行する中央コントローラーを定義する時に使用される一般的な用語です。ハブクラスターから、コンソールや製品コンポーネントをはじめ、クラスターライフサイクル管理に関連する API 要求を処理する rcm-api
などの API にアクセスできます。これについては、本トピックの後半で定義します。
ハブクラスターは、非同期のワーク要求モデルを使用して複数のクラスターから情報を集計します。ハブクラスターは、グラフデータベースを使用して、ハブクラスター上で実行されるクラスターやアプリケーションの状態を管理します。ハブクラスターは、etcd
(分散 Key-Value Store (KVS)) を使用して、 ワーク要求の状態や複数クラスターからの結果を保存し、サポート対象のさまざまな機能に対して REST API セットを提供します。
1.1.2. マネージドクラスター
マネージドクラスターは、Klusterlet を持つ追加のクラスターを定義するときに使用する用語です。このクラスターは、Red Hat Advanced Cluster Management for Kubernetes ハブクラスターへの接続を開始するエージェントです。マネージドクラスターは要求を受信して適用してから、結果を返します。クラスターライフサイクル に含まれるクラスターの管理については、「クラスターの管理」 を参照してください。
1.1.3. クラスターライフサイクル
Red Hat Advanced Cluster Management for Kubernetes の クラスターライフサイクル は、パブリッククラウドおよびプライベートクラウド全体のクラスターの作成、インポート、管理プロセスを定義します。ハブクラスターコンソールから、すべてのクラスターのヘルスステータスの集計を表示したり、個別のヘルスメトリクスを表示したりできます。Red Hat Openshift のマネージドクラスターの個別または一括でのアップグレードや、ハブクラスターから作成した Red Hat Openshift クラスターの破棄が可能です。
1.1.4. アプリケーションライフサイクル
Red Hat Advanced Cluster Management for Kubernetes の アプリケーションライフサイクル は、マネージドクラスターでのアプリケーションリソースの管理に使用するプロセスを定義します。マルチクラスターアプリケーションは Kubernetes 仕様を使用しますが、さらに、個別のクラスターに対するリソースのデプロイメントやライフサイクル管理が自動化されます。マルチクラスターアプリケーションを使用すると、調整しやすいサービスルートを確保しながらも、複数のクラスターにリソースをデプロイでき、さらにはアプリケーションのあらゆる側面への Kubernetes リソースの更新を完全に制御できます。他のアプリケーションに関するトピックについては、「アプリケーションの管理」を参照してください。
1.1.5. ガバナンスおよびリスク
ガバナンスおよびリスクは、中央のインターフェースページからセキュリティーおよびコンプライアンスを管理するのに使用するプロセスを定義する用語です。Red Hat Advanced Cluster Management for Kubernetes のハブクラスターとマネージドクラスターを設定した後に、Red Hat Advanced Cluster Management ポリシーフレームワークを使用してポリシーの表示や作成が可能になります。
ガバナンスおよびリスクの詳細は、「セキュリティー」の概要を参照してください。さらに、「ロールベースのアクセス制御」のドキュメントで、アクセス要件について確認してください。
クラスターを準備して設定情報を取得する情報は、当製品の「インストール」のセクションを参照してください。
また、この製品でインストールされる内容については、「 コンポーネント 」のトピックを参照してください。
1.2. コンポーネント
デフォルトでハブクラスターおよびマネージドクラスターにインストールされ、有効化されているコンポーネントの情報については、以下の表を参照してください。以下で、必須のコンポーネントや、該当する場合のデフォルト値 (必須) を確認してください。
1.2.1. デフォルトで有効化されているサービス
サービス | 説明 | 必須 |
---|---|---|
management-ingress | 予測可能なアノテーションと TLS 保護を使用して、ネットワークの Ingress コントローラーの背後にある全管理サービスを統合します。このサービスには直接アクセスしないようにしてください。 | はい |
cert-manager | このサービスは、証明書のライフサイクルを管理します。 | はい |
cert-manager-webhook | このサービスは Kubernetes API サーバーを拡張し、証明書マネージャーのリソースを動的に検証できるようにします。 | はい |
configmap-watcher | このサービスは、依存する config map の更新時に Pod を再起動するために使用できます。 | はい |
mongo-db | 永続データストアを必要とするプラットフォームサービスはすべて MongoDB サービスを使用します。MongoDB の高可用性トポロジーは、追加設定なしでサポートされます。このサービスには直接アクセスしないようにしてください。 | はい、5G |
1.2.2. デフォルトで有効化されているハブクラスターコンポーネント
サービス | 説明 | 必須 |
---|---|---|
application-ui | アプリケーションのライフサイクルを管理する Web コンソール。 | はい |
console-api | console-ui サービスのバックエンド API を提供します。 | はい |
console-ui | クラスターで利用可能なリソースを確認でき、作成、変更、または削除の機能がサポートされます。 | はい |
console-header | Web コンソールのヘッダーで利用可能なサービスセットを提供します。 | はい |
grc-ui | Red Hat Advanced Cluster Management for Kubernetes でのガバナンスおよびリスクを管理する Web コンソール | はい |
grc-ui-api | Red Hat Advanced Cluster Management for Kubernetes でのガバナンスおよびリスクを管理する API サービス | はい |
grc-policy-propogator | Red Hat Advanced Cluster Management for Kubernetes リソースへのイベントと要求を処理します。 | はい |
hive | クラスターのプロビジョニングとライフサイクル管理を行います。 | はい |
klusterlet-addon-controller | マネージドクラスターで klusterlet-addons の作成/更新/削除を処理します。 | はい |
kui-web-terminal | Visual Web ターミナルを提供します。 | はい |
managedcluster-import-controller | クラスターのライフサイクル管理を処理するコントローラー | はい |
mcm-apiserver | Red Hat Advanced Cluster Management for Kubernetes に関連する Kubernetes オブジェクトを管理する REST API サーバー | はい |
mcm-controller | Red Hat Advanced Cluster Management for Kubernetes リソースに対するイベントと要求を処理するサービス | はい |
mcm-webhook |
このサービスは、 | はい |
multicluster-operators | サブスクリプションの管理および調整 | はい |
multiclusterhub-operator | ハブクラスターに Red Hat Advanced Cluster Management for Kubernetes をインストールするためのオペレーター | はい |
multiclusterhub-repo | 内部用の Helm リポジトリーをホストするサービス。必要なコンポーネントの Helm チャートで事前にデータが投入されます。 | はい |
redisgraph-tls | 検索データのキャッシュ | はい |
search-aggregator |
マネージドクラスターの | はい |
search-api | 検索サービスの API を提供します。 | はい |
search-collector | コンソールおよび Visual Web ターミナルを使用してリソースを検索できる機能を提供します。 | はい |
topology-aggregator | トポロジービュー用に受信したデータをインデックス化します。 | はい |
topology | Topology ダッシュボードのユーザーインターフェースを提供します。 | はい |
topology-api | Topology-ui サービスのバックエンドサービスを提供します。 | はい |
1.2.3. デフォルトで有効化されているマネージドクラスターのコンポーネント
以下の表は、マネージドクラスターにインストールされているサービスを示しています。
サービス | 説明 | 必須 |
---|---|---|
applicationManager | 管理対象リソースへのイベントや他の要求を処理します。 | はい |
certPolicyController | 分散ポリシーに基づいて証明書の有効期限を監視します。 | はい |
iamPolicyController | 分散ポリシーに基づくアイデンティティー管理を監視します。 | はい |
imageRegistry | quay.io/open-cluster-management | はい |
klusterlet-addon-operator | 内部 Helm チャートコンポーネントのデプロイメントを処理します。 | はい |
policyController | 設定されたポリシーを分散し、Kubernetes ベースのポリシーを監視します。 | はい |
searchCollector | ハブクラスターの検索コンポーネントでインデックス化できるようにクラスターデータを収集します。 | はい |
workmgr | エンドポイントのワーク要求とマネージドクラスターのステータスを処理するコンポーネント | はい |
1.3. スタートガイド
1.3.1. はじめに
マルチクラスターアーキテクチャー で製品アーキテクチャーを確認してください。ライセンスとサブスクリプション契約に同意したら、「 コンポーネント 」のトピックを参照して、Red Hat Advanced Cluster Management for Kubernetes でインストールされる内容について確認してください。
ハブクラスターとマネージドクラスターのアーキテクチャーについて確認した後に、「サポート対象のクラウド」を確認してください。ここでは、クラウドプロバイダーのクラスターオプションが一覧表示されています。
ハブクラスターは、Red Hat OpenShift クラスターバージョン 4.3.x、4.4 または 4.5 を使用し、任意の「サポート対象の Red Hat OpenShift Container Platform インフラストラクチャー」で稼働します。
用語集 では、当製品の一般的な用語が定義されています。
問題が発生した場合には、『トラブルシューティング』ガイドを参照して、mustgather
コマンドについて確認してください。また、文書化されているトラブルシューティングタスクを参照すると、問題の解決に役立つ場合があります。
1.3.2. インストール
- Red Hat Advanced Cluster Management for Kubernetes をインストールする前に、要件および推奨事項 で設定要件および設定オプションを確認してください。必要なオペレーティングシステムおよびサポート対象のブラウザーに関する情報を取得します。たとえば、ハブクラスターを設定できるように、サポート対象の Red Hat OpenShift Container Platform バージョンを使用していることを確認します。
- また、ハブクラスターに適切な容量があることを確認する必要があります。ハブクラスターを準備するには、「インストール用のハブクラスターの準備」を参照してください。
- ハブクラスターにサポート対象の OpenShift Container Platform がインストールされ、稼働している場合には、「ネットワーク接続時のオンラインインストール」に進んでください。
インストール後に、『Web コンソール』ガイドを参照して、コンソールへのアクセス方法と、コンソールで利用できる機能を確認します。
1.3.3. クラスターの管理
クラスターの作成およびインポートの準備が整いました。ハブクラスターで、他の Kubernetes サービスから管理対象のクラスターを作成して、クラスター情報を表示できます。
- 作成可能なマネージドクラスターの種類については、「Red Hat Advanced Cluster Management for Kubernetes でのクラスターの作成」を参照してください。マネージドクラスターの作成時に、新しいマネージドクラスターが自動的にインポートされます。
- 手動でインポートするクラスターがある場合には、「ハブクラスターへのターゲットのマネージドクラスターのインポート」を参照して、マネージドクラスターのインポート方法を確認してください。
- クラスターを管理する必要がなくなったら、Cluster ページ からクラスターをデタッチします。
1.3.4. アプリケーションの管理
作成してインポートしたマネージドクラスターで、アプリケーションの管理を開始できます。作成可能なリソースタイプは、アプリケーション、チャネル、サブスクリプション、配置ルールです。
-
リソースとリソースの作成や管理に関する情報は、『アプリケーションの管理』を参照してください。リソースの作成には、
.yaml
を追加または編集します。 - アプリケーションダッシュボード からリソースを表示して編集します。
1.3.5. セキュリティーの管理
作成してインポートしたマネージドクラスターから、セキュリティーおよびコンプライアンスを管理することも可能です。
-
policy テンプレートを使用して、ポリシーを作成します。
.yaml
テンプレートでポリシーを作成する方法については、「ポリシーの概要」を参照してください。 - Policy ページから、クラスターとポリシー違反の概要を確認できます。
- コンソールの Governance and risk ページからポリシーを確認します。また、クラスターの 概要 からポリシーの詳細を表示することもできます。
1.4. 用語集
Red Hat Advanced Cluster Management for Kubernetes は複数のマルチクラスターコンポーネントで構成されます。以下のセクションで、これらのマルチクラスターコンポーネントを定義します。また、一般的な Kubernetes 用語の一部も、当製品で使用されます。用語はアルファベット順に記載されています。
1.4.1. 標準の関連用語集
1.4.2. Red Hat Advanced Cluster Management for Kubernetes の用語
1.4.2.1. アプリケーションライフサイクル
マネージドクラスターでアプリケーションを管理するときに使用するプロセス。マルチクラスターアプリケーションは Kubernetes 仕様を使用しますが、さらに、個別のクラスターに対するリソースのデプロイメントやライフサイクル管理が自動化されます。
1.4.2.2. チャネル
Git リポジトリー、Helm チャートリポジトリー、オブジェクトストア、ハブクラスターの namespace など、Kubernetes リソースが格納されるリポジトリーを参照するカスタムリソース定義。チャネルでは、複数ターゲットからの複数のサブスクリプションをサポートします。
1.4.2.3. クラスターライフサイクル
パブリッククラウドおよびプライベートクラウド全体のクラスターの作成、インポート、管理プロセスを定義します。
1.4.2.4. コンソール
Red Hat Advanced Cluster Management のグラフィカルユーザーインターフェース。
1.4.2.5. Deployable
パッケージのテストや実行ができるように、ビルドの出力を取得して設定プロパティーで出力をパッケージ化し、事前定義済みの場所にパッケージをインストールします。
1.4.2.6. ガバナンスおよびリスク
セキュリティーおよびコンプライアンスの管理に使用する Red Hat Advanced Cluster Management プロセス。
1.4.2.7. ハブクラスター
Red Hat Advanced Cluster Management for Kubernetes クラスターで実行する中央コントローラー。ハブクラスターから、コンソールと、対象のコンソールにあるコンポーネント、API にアクセスできます。
1.4.2.8. マネージドクラスター
作成およびインポートしたクラスターは、Red Hat Advanced Cluster Management for Kubernetes ハブクラスターへの接続を開始する Klusterlet エージェントとそのアドオンにより管理されます。
1.4.2.9. Klusterlet
マネージドクラスター上でコントローラーを 2 つ含むエージェントで Red Hat Advanced Cluster Management for Kubernetes のハブクラスターへの接続を開始します。
1.4.2.10. Klusterlet アドオン
追加の管理機能を提供する Klusterlet 上の特化されたコントローラー。
1.4.2.11. 配置ポリシー
アプリケーションコンポーネントのデプロイ先や、配置するレプリカ数を定義するポリシー。
1.4.2.12. 配置ルール
サブスクリプションの配信先のターゲットクラスターを定義するルール。たとえば、クラスター名、リソースアノテーション、またはリソースラベルを検証します。
1.4.2.13. サブスクリプション
チャネル内で Kubernetes リソースを特定します (リソースリポジトリー)。サブスクリプションは、サブスクライブされたターゲットクラスターで作成した namespace と同じところに Kubernetes リソースを配置します。