1.2. マネージドクラスターを Red Hat OpenShift GitOps Operator に登録する


OpenShift GitOps を Push モデルで設定するには、1 つ以上の Red Hat Advanced Cluster Management for Kubernetes マネージドクラスターのセットを OpenShift GitOps Operator のインスタンスに登録します。登録後、アプリケーションをこれらのクラスターにデプロイできます。継続的な OpenShift GitOps 環境を設定して、開発環境、ステージング、および実稼働環境のクラスター全体でアプリケーションの整合性を自動化します。

1.2.1. 前提条件

  1. Red Hat Advanced Cluster Management for Kubernetes に Red Hat OpenShift GitOps Operator をインストールする必要がある。
  2. 1 つ以上のマネージドクラスターをインポートする。
  3. マネージドクラスターを OpenShift GitOps に登録するには、ManagedClusterSet の作成 ドキュメントに記載されている内容を完了してください。

1.2.2. マネージドクラスターを Red Hat OpenShift GitOps に登録する

マネージドクラスターを OpenShift GitOps に登録するには、次の手順を実行します。

  1. OpenShift GitOps がデプロイされている namespace にバインドするマネージドクラスターセットを作成します。マネージドクラスターを openshift-gitops namespace にバインドする例は、multicloud-integrations マネージド clusterset バインディングの例を参照してください。ManagedClusterSetBinding の作成に関する一般的な情報は、追加リソース セクションの ManagedClusterSetBinding リソースの作成 を参照してください。配置の詳細は、ManagedClusterSets からの ManagedClusters のフィルタリング を参照してください。
  2. マネージドクラスターセットバインディングで使用される namespace で、Placement カスタムリソースを作成し、OpenShift GitOps Operator インスタンスに登録するマネージドクラスターのセットを選択します。multicloud-integration 配置例をテンプレートとして使用します。配置情報は、配置での ManagedClusterSets の使用 を参照してください。

    注記:

    • 他の Kubernetes クラスターではなく、OpenShift GitOps Operator インスタンスに登録されるのは、OpenShift Container Platform クラスターのみです。
    • 一部の不安定なネットワークシナリオでは、マネージドクラスターが一時的に使用 unavailable または unreachable 状態になることがあります。詳細は、Red Hat Advanced Cluster Management および OpenShift GitOps の配置許容範囲の設定 を参照してください。
  3. GitOpsCluster カスタムリソースを作成し、配置決定から OpenShift GitOps の指定されたインスタンスにマネージドクラスターのセットを登録します。これにより、OpenShift GitOps インスタンスは、これらの Red Hat Advanced Cluster Management マネージドクラスターのいずれかにアプリケーションをデプロイできます。multicloud-integrations OpenShift GitOps クラスターの例を使用します。

    注記: 参照される Placement リソースは、GitOpsCluster リソースと同じ namespace に配置されている必要があります。以下の例を参照してください。

    apiVersion: apps.open-cluster-management.io/v1beta1
    kind: GitOpsCluster
    metadata:
      name: gitops-cluster-sample
      namespace: dev
    spec:
      argoServer:
        cluster: local-cluster
        argoNamespace: openshift-gitops
      placementRef:
        kind: Placement
        apiVersion: cluster.open-cluster-management.io/v1beta1
        name: all-openshift-clusters 1
    1
    placementRef.name の値は all-openshift-clusters で、argoNamespace: openshift-gitops にインストールされている OpenShift GitOps インスタンスのターゲットクラスターとして指定されます。argoServer.cluster 仕様には local-cluster の値が必要です。
  4. 変更を保存します。これで、OpenShift GitOps ワークフローに従ってアプリケーションを管理できるようになりました。

1.2.3. OpenShift Container Platform クラスター以外のクラスターを Red Hat OpenShift GitOps に登録する

Red Hat Advanced Cluster Management GitOpsCluster リソースを使用して、OpenShift Container Platform クラスター以外のクラスターを OpenShift GitOps クラスターに登録できるようになりました。この機能では、OpenShift GitOps コンソールを使用して、OpenShift Container Platform クラスター以外のクラスターにアプリケーションリソースをデプロイできます。OpenShift Container Platform クラスター以外のクラスターを OpenShift GitOps クラスターに登録するには、次の手順を実行します。

  1. OpenShift Container Platform 以外の ManagedCluster リソース spec の API サーバー URL に移動し、次のコマンドを実行して検証します。

    oc get managedclusters eks-1
  2. 次の情報のような出力になっていることを確認します。

    NAME    HUB ACCEPTED   MANAGED CLUSTER URLS                                                      JOINED   AVAILABLE   AGE
    eks-1   true           https://5E336C922AB16684A332C10535B8D407.gr7.us-east-2.eks.amazonaws.com  True     True        37m
  3. OpenShift Container Platform 以外の MangedCluster リソース spec の API サーバー URL が空の場合は、次の手順を実行して手動で更新します。

    1. API サーバー URL を完成させるには、次のコマンドを実行して MangedCluster リソース spec を編集します。

      oc edit managedclusters eks-1
    2. YAML が次のファイルのようになっていることを確認します。

      spec:
        managedClusterClientConfigs:
        - caBundle: ZW1wdHlDQWJ1bmRsZQo=
          url: https://5E336C922AB16684A332C10535B8D407.gr7.us-east-2.eks.amazonaws.com
    3. 変更を保存し、次のコマンドを実行して API サーバーが完了したことを確認します。

      oc get managedclusters eks-1
    4. 次の情報のような出力になっていることを確認します。
    NAME     HUB ACCEPTED  MANAGED CLUSTER URLS                                                      JOINED   AVAILABLE   AGE
    eks-1    true          https://5E336C922AB16684A332C10535B8D407.gr7.us-east-2.eks.amazonaws.com  True     True        37m
  4. クラスターシークレットが生成されたことを確認するには、openshift-gitops namespace に移動し、GitOpsCluster リソースのステータスが successful として報告されていることを確認します。

    注記:

    • Red Hat Advanced Cluster Management 2.12 以降では、次のインポートモードを使用すると、すべてのタイプの非 OpenShift Container Platform ManagedCluster リソースの API サーバー URL が自動的にレンダリングされます。

      • 既存クラスターのサーバー URL および API トークンを入力します。
      • 既存クラスターの kubeconfig ファイルを入力します。
    • 次の場合、ManagedClusters リソースの 1 つに対して API サーバー URL が空になる可能性があります。

      • OpenShift Container Platform クラスター以外のクラスターは、バージョン 2.12 より前の Red Hat Advanced Cluster Management ハブクラスターにインポートされます。
      • OpenShift Container Platform クラスター以外のクラスターは、インポートモード Run import commands を使用して、バージョン 2.12 の Red Hat Advanced Cluster Management ハブクラスターに手動でインポートされます。

1.2.4. Red Hat OpenShift GitOps トークン

OpenShift GitOps Operator と統合すると、配置および ManagedClusterSetBinding カスタムリソースを通じて OpenShift GitOps namespace にバインドされているすべてのマネージドクラスターに対して、ManagedCluster にアクセスするためのトークンを含むシークレットが OpenShift GitOps インスタンスサーバー namespace に作成されます。

OpenShift GitOps コントローラーは、リソースをマネージドクラスターに同期するためにこのシークレットを必要とします。デフォルトでは、サービスアカウントアプリケーションマネージャーは、マネージドクラスターのクラスター管理者権限を使用して、OpenShift GitOps インスタンスサーバーの namespace に OpenShift GitOps クラスターシークレットを生成します。デフォルトの namepsace は openshift-gitops です。

このデフォルトが不要な場合は、OpenShift GitOps インスタンスサーバーの namepsace で OpenShift GitOps クラスターシークレットを生成するために、カスタマイズされた権限を持つサービスアカウントをマネージドクラスターで作成します。デフォルトの namepsace は引き続き openshift-gitops です。詳細は、Argo CD プッシュモデル用のカスタマイズされたサービスアカウントの作成 を参照してください。

1.2.5. 関連情報

詳細は、次のリソースと例を参照してください。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.