1.3. アプリケーションリソースの管理


コンソールから、Git リポジトリー、Helm リポジトリー、およびオブジェクトストレージリポジトリーを使用してアプリケーションを作成できます。

重要: Git チャネルは、他のすべてのチャネルタイプ (Helm、オブジェクトストレージ、およびその他の Git namespace) と namespace を共有できます。

アプリケーションの管理を開始する場合は、以下のトピックを参照してください。

1.3.1. Git リポジトリーを使用したアプリケーションの管理

アプリケーションを使用して Kubernetes リソースをデプロイする場合に、リソースは特定のリポジトリーに配置されます。以下の手順で、Git リポジトリーからリソースをデプロイする方法を説明します。詳細は、「 アプリケーションモデルおよび定義 」を参照してください。

ユーザーに必要なアクセス権: アプリケーションを作成できるユーザーロールロールが割り当てられているアクションのみを実行できます。「ロールベースのアクセス制御」のドキュメントで、アクセス要件について確認してください。

  1. コンソールのナビゲーションメニューから Manage applications をクリックします。
  2. Create application を クリックします。

    以下の手順では、YAML: On を選択し、アプリケーションの作成時にコンソールで YAML を表示します。このトピックの後半にある「YAML サンプル」を参照してください。

  3. 以下の値を正しいフィールドに入力します。

    • Name: アプリケーションの有効な Kubernetes 名を入力します。
    • namespace: 一覧から namespace を選択します。正しいアクセスロールが割り当てられている場合は、有効な Kubernetes 名を使用して namespace を作成することもできます。
  4. 使用できるリポジトリーの一覧から Git を選択します。
  5. 必要な URL パスを入力するか、既存のパスを選択します。

    既存の Git リポジトリーパスを選択し、そのリポジトリーがプライベートの場合には、接続情報を指定する必要はありません。接続情報が事前設定されているので、これらの値を確認する必要はありません。

    新しい Git リポジトリーパスを入力し、その Git リポジトリーがプライベートの場合には、オプションで Git 接続情報を入力できます。

  6. ブランチやフォルダーなど、オプションでフィールドに値を入力します。
  7. デプロイメントの前後のタスクをオプションで設定します。

    テクノロジープレビュー: サブスクリプションがアプリケーションリソースをデプロイする前後に実行する Ansible Tower ジョブがある場合には、Ansible Tower のシークレットを設定します。Ansible ジョブを定義する Ansible Tower タスクは、このリポジトリーの prehook および posthook フォルダー内に配置する必要があります。

    シークレットをアプリケーション namespace に作成した場合は、ドロップダウンメニューから Ansible Tower シークレットを選択できます。この例では、接続情報は事前設定されており、これらの値を表示する必要はありません。

    新しい Ansible Tower シークレット名を入力して新しいシークレットを作成する場合は、Ansible Tower ホストおよびトークンを入力する必要があります。

  8. Select clusters to deploy で、アプリケーションの配置ルールの情報を更新できます。以下から選択します。

    • ローカルクラスターへのデプロイ
    • すべてのオンラインクラスターおよびローカルクラスターへのデプロイ
    • 指定されたラベルに一致するクラスターのみへのアプリケーションリソースのデプロイ
    • 配置ルールが定義済みの既存の namespace にアプリケーションを作成した場合には、既存の配置設定を選択する こともできます。
  9. Settings から、アプリケーションの動作を指定できます。特定の期間にデプロイメントへの変更をブロックまたは有効にするには、Deployment window のオプションおよび Time window configuration を選択します。
  10. 別のリポジトリーを選択するか、または Save をクリックします。
  11. Overview ページにリダイレクトされ、詳細とトポロジーを確認できます。

1.3.1.1. YAML 例

以下のチャネル定義例は、Git リポジトリーのチャネルの例を示しています。以下の例では、secretRef は、pathname で指定されている Git リポジトリーにアクセスするときに使用するユーザー ID を参照します。パブリックリポジトリーを使用する場合は、secretRef は必要ありません。

apiVersion: apps.open-cluster-management.io/v1
kind: Channel
metadata:
  name: hive-cluster-gitrepo
  namespace: gitops-cluster-lifecycle
spec:
  type: Git
  pathname: https://github.com/open-cluster-management/gitops-clusters.git
  secretRef:
    name: github-gitops-clusters
---
apiVersion: v1
kind: Secret
metadata:
  name: github-gitops-clusters
  namespace: gitops-cluster-lifecycle
data:
  user: dXNlcgo=            # Value of user and accessToken is Base 64 coded.
  accessToken: cGFzc3dvcmQ
Copy to Clipboard Toggle word wrap

注記: REST API を確認するには、「API」を使用します。

1.3.1.2. アプリケーション GitOps

local-cluster の配置ルールを使用すると、サブスクリプションを使用して設定関連のリソースをハブクラスターに配信できます。

これらのリソースは、アプリケーションとポリシーの設定、Ansible ジョブの実行、プロビジョニング後のクラスター設定、またはインポート後のクラスター設定を行うサブスクリプションなどです。

1.3.1.2.1. GitOps のリポジトリーサンプル

以下のリポジトリーの例では、ハブクラスターごとにフォルダーがあることがわかります。ハブクラスターごとのリポジトリーやブランチを作成することもできます。

ハブクラスターで定義した 1 つのサブスクリプションは、ハブクラスターの設定、ポリシー、ハブクラスターおよびマネージドクラスターに設定してデプロイする共通アプリケーションなど、その他の全設定リソースをプルします。

この種類の情報を保存する Git リポジトリーは、以下のサンプルファイルとディレクトリー構造のようになります。root パス、マネージドクラスター、ハブクラスターのセクションを参照してください。

1.3.1.2.2. GitOps ルートパス

リポジトリーのルートパスにあるこれらのファイルは、Git リポジトリーを参照し、.kubernetesignore で指定されている YAML 以外のものをすべて適用するサブスクリプションを作成します。これには、4 つのサブスクリプションファイルと ./managed-cluster-common ディレクトリーが含まれます。

 /   # Repository root directory

  # The subscription that delivers all the previous content to the hub cluster:

  hub-application.yaml   # This represents the hub cluster configuration in the console
  hub-channels.yaml      # This points to `rhacm-hub-cluster` Git repository
  hub-subscriptions.yaml # This defines the time window, branch to be used, and defines which directories containing appropriate configs, such as `hub-policies`, should be used (can be all)
  hub-placement.yaml     # Points back to the `local-cluster` (hub cluster that is managed)
  .kubernetesignore      # Tells the subscription to ignore hub-application.yaml, hub-channels.yaml, hub-subscription.yaml & hub-placement.yaml
Copy to Clipboard Toggle word wrap
1.3.1.2.3. マネージドクラスターへの GitOps アプリケーション

以下のディレクトリーには、マネージドクラスター に適用されるサブスクリプションが含まれます。これらのサブスクリプションは、ルートディレクトリーのサブスクリプションを使用してハブクラスターに適用されます。

以下は、別のものをサブスクライブするサブスクリプションの例です。

common-managed/
    apps/
      app-name-0/
        application.yaml
        subscription.yaml
        channel.yaml        # This points to a repository named `app-name-0`, of type Git, Helm, or Object Storage
        placementrule.yaml
      app-name-1/
        application.yaml
        subscription.yaml
        channel.yaml        # This points to a repository named `app-name-0`, of type Git, Helm, or Object Storage
        placementrule.yaml
    config/
      application.yaml      # named: `day2-config`
      subscription.yaml     # Points to the `managed-cluster-common/config` parent directory
      channel.yaml          # Can point to this Git repository or a different repository with the day-two configuration
      placementrule.yaml    # Defines the clusters to target
managed-cluster-common/
  configs/                  # These configurations are referenced through the `config` subscription
    certmanagement.yaml
    auth-oidc.yaml
    autoscaler.yaml
    descheduler.yaml
Copy to Clipboard Toggle word wrap
1.3.1.2.4. ハブクラスターへの GitOps アプリケーション

以下のポリシーはハブクラスターに適用され、ハブクラスターの設定と、リモートクラスターのポリシーの両方を提供します。

以下の例のように、これらのポリシーはルートサブスクリプションから提供されます。

managed-cluster-common/
  policies/
    policy-0.yaml
    policy-1.yaml
  hub-policies/
    policy-0.yaml
    vault.yaml
    operators.yaml
Copy to Clipboard Toggle word wrap
1.3.1.2.5. GitOps の適用

上記のサンプルを組み合わせて以下を指定できます。

  1. CLI コマンドで適用可能なルートサブスクリプション。ルートサブスクリプションは、このリポジトリーをサブスクライブして、全 YAML をハブクラスターに適用します。
  2. 手順 1 のサブスクリプション。common-managed/ のアプリケーションと設定サブスクリプションを適用します。
  3. 手順 2 の設定サブスクリプション。managed-cluster-common/ で定義されたリソースを適用します。
  4. managed-cluster-common/ で定義されるポリシー。このポリシーは、手順 1 のサブスクリプションでハブクラスターにも適用されます。これらのポリシーには、ハブクラスターへのターゲットポリシーやマネージドクラスターターゲットのポリシーが含まれます。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat