1.4. アプリケーションの詳細設定
Red Hat Advanced Cluster Management for Kubernetes では、アプリケーションは複数のアプリケーションリソースで構成されています。チャネル、サブスクリプション、および配置ルールリソースを使用すると、アプリケーション全体のデプロイ、更新、および管理に役立ちます。
単一クラスターアプリケーションもマルチクラスターアプリケーションも同じ Kubernetes 仕様を使用しますが、マルチクラスターアプリケーションでは、デプロイメントおよびアプリケーション管理ライフサイクルがさらに自動化されます。
Red Hat Advanced Cluster Management for Kubernetes アプリケーションのアプリケーションコンポーネントリソースはすべて、YAML ファイルの仕様セクションで定義します。アプリケーションコンポーネントリソースを作成または更新する必要がある場合は、適切な仕様セクションを作成してリソースを定義するラベルを追加する必要があります。
以下のアプリケーション詳細設定のトピックを確認してください。
1.4.1. Git リソースのサブスクライブ リンクのコピーリンクがクリップボードにコピーされました!
サブスクリプション管理者は、デフォルトの動作を変更できます。デフォルトでは、サブスクリプションを使用してサブスクライプされているアプリケーションをターゲットクラスターにデプロイすると、アプリケーションリソースが別の namespace に関連付けられている場合でも、このアプリケーションはこのサブスクリプション namespace にデプロイされます。
また、アプリケーションリソースがクラスターに存在しており、サブスクリプションを使用して作成されていない場合には、このサブスクリプションではその既存リソースに対して新しいリソースを適用できません。サブスクリプション管理者のデフォルト設定を変更するには、以下のプロセスを参照してください。
必要なアクセス権限: クラスターの管理者
1.4.1.1. ユーザーとグループのサブスクリプション管理権限の付与 リンクのコピーリンクがクリップボードにコピーされました!
サブスクリプションの管理者権限を付与する方法について説明します。
- コンソールから OpenShift Container Platform クラスターにログインします。
ユーザーを 1 つ以上作成します。ユーザー作成に関する詳細は、「ユーザー向けの準備」を参照してください。
app.open-cluster-management.io/subscriptionアプリケーションの管理者として、ユーザーを作成します。OpenShift Container Platform では、サブスクリプション管理者はデフォルトの動作を変更できます。これらのユーザーをグループ化してサブスクリプション管理グループを表すことができます。これについては、後ほど例説します。- ターミナルから、Red Hat Advanced Cluster Management クラスターにログインします。
以下のコマンドで、次のサブジェクトを
open-cluster-management:subscription-adminClusterRoleBinding に追加します。oc edit clusterrolebinding open-cluster-management:subscription-admin
oc edit clusterrolebinding open-cluster-management:subscription-adminCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記:
open-cluster-management:subscription-adminClusterRoleBinding にはサブジェクトは初期設定されていません。サブジェクトは以下の例のように表示されます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
次に、サブスクリプション管理者がデフォルト動作を変更する有用な例を確認します。
1.4.1.2. アプリケーション namespace の例 リンクのコピーリンクがクリップボードにコピーされました!
この例では、サブスクリプション管理者としてログインします。サブスクリプションを作成して、サンプルのリソース YAML ファイルを Git リポジトリーからサブスクライブします。このサンプルファイルには、以下の異なる namespace にあるサブスクリプションが含まれます。
適用可能なチャネルタイプ: Git
-
ConfigMap
test-configmap-1はmultinsnamespace に作成されます。 -
ConfigMap
test-configmap-2はdefaultnamespace に作成されます。 ConfigMap
test-configmap-3はsubscriptionnamespace に作成されます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
他のユーザーがサブスクリプションを作成した場合には、ConfigMap がすべて、サブスクリプションと同じ namespace に作成されます。
1.4.1.3. リソース上書きの例 リンクのコピーリンクがクリップボードにコピーされました!
適用可能なチャネルタイプ: Git、ObjectBucket (コンソールのオブジェクトストレージ)
この例では、以下の ConfigMap はすでにターゲットクラスターにあります。
Git リポジトリーから、以下のリソース YAML ファイル例をサブスクライブして、既存の ConfigMap を置き換えます。
サブスクリプション管理者としてログインして、apps.open-cluster-management.io/reconcile-option: replace アノテーションを付けてサブスクリプションを作成します。以下の例を参照してください。
サブスクリプション管理者がこのサブスクリプションを作成し、そのサブスクリプションで ConfigMap リソースをサブスクライブする場合には、既存の ConfigMap を以下に置き換えます。
Git リポジトリーから以下のサンプルリソースの YAML ファイルをサブスクライブし、既存の ConfigMap に マージ する場合には、apps.open-cluster-management.io/reconcile-option: merge アノテーションを使用します。以下の例を参照してください。
サブスクリプション管理者がこのサブスクリプションを作成し、そのサブスクリプションで ConfigMap リソースをサブスクライブする場合には、以下の例のように既存の ConfigMap をマージします。
merge オプションを使用すると、サブスクライブしているリソースのエントリーが、既存のリソースで作成または更新されます。既存のリソースからエントリーは削除されません。
重要: サブスクリプションで上書きする既存のリソースが自動的に別の Operator またはコントローラーで調整される場合には、リソース設定がサブスクリプションとコントローラーまたは Operator により更新されます。このような場合には、この方法を使用しないでください。
1.4.1.3.1. 調整オプション リンクのコピーリンクがクリップボードにコピーされました!
個々のリソースで apps.open-cluster-management.io/reconcile-option アノテーションを使用して、サブスクリプションレベルの調整オプションを上書きすることもできます。
たとえば、apps.open-cluster-management.io/reconcile-option: replace アノテーションをサブスクリプションに追加し、サブスクライブされた Git リポジトリーのリソース YAML に apps.open-cluster-management.io/reconcile-option: merge アノテーションを追加すると、そのリソースはターゲットクラスターにマージされます。その他のリソースは置き換えられます。