クラスター設定の管理


Red Hat OpenShift GitOps 1.18

OpenShift Container Platform クラスター設定の管理

Red Hat OpenShift Documentation Team

概要

このドキュメントでは、OpenShift GitOps を使用して OpenShift クラスター設定を管理する方法のスタートガイドを提供します。

第1章 OpenShift Container Platform クラスター設定の管理

Red Hat OpenShift GitOps を使用した OpenShift Container Platform クラスター設定の管理には、次のような利点があります。

  • バージョン管理と監査可能性: Git にコミットされた設定変更は、完全な変更履歴を提供します。これにより、監査、コンプライアンス、説明責任が容易になります。
  • 信頼できる唯一の情報源: Git は、OpenShift Container Platform クラスターのあるべき状態を示す決定的な情報源として機能します。
  • 最適化されたパフォーマンスと障害復旧: GitOps は Argo CD アプリケーションを、Git 内の既知の良好な状態にある以前のコミットまたはタグにポイントします。これにより、ダウンタイムが短縮され、障害復旧が容易になります。
  • コラボレーションとレビュー: Git のコラボレーション機能により、チームメンバーは、インフラストラクチャーとアプリケーションの設定変更を、OpenShift Container Platform クラスターに適用する前に確認して承認できます。
  • 効率性とスケーラビリティー: GitOps は、デプロイメントと運用のワークフローを合理化し、手動による介入と人的エラーを減らして、複雑なマルチクラスター環境の効率的な管理を可能にします。

OpenShift Container Platform クラスター設定を管理するには、次のタスクを実行します。

  1. CLI を使用して Red Hat OpenShift GitOps Operator をインストールする
  2. デフォルトの Argo CD インスタンスを分析する
  3. デフォルトの Argo CD インスタンスにアクセスする
  4. デフォルトの Argo CD インスタンスを設定する

1.1. CLI を使用した Red Hat OpenShift GitOps Operator のインストール

CLI を使用して OperatorHub から Red Hat OpenShift GitOps Operator をインストールできます。

注記

GitOps バージョン 1.10 以降では、デフォルトの namespace が openshift-operators から openshift-gitops operator に変更されました。

前提条件

  • cluster-admin 権限で OpenShift Container Platform クラスターにアクセスするためのログイン認証情報がある。
  • oc CLI をインストールした。

手順

  1. openshift-gitops-operator namespace を作成します。

    $ oc create ns openshift-gitops-operator
    Copy to Clipboard Toggle word wrap

    出力例

    namespace/openshift-gitops-operator created
    Copy to Clipboard Toggle word wrap

    注記

    openshift.io/cluster-monitoring=true ラベルを適用することで、openshift-gitops-operator または任意の namespace でクラスターモニタリングを有効にできます。

    $ oc label namespace <namespace> openshift.io/cluster-monitoring=true
    Copy to Clipboard Toggle word wrap

    出力例

    namespace/<namespace> labeled
    Copy to Clipboard Toggle word wrap

  2. OperatorGroup オブジェクト YAML ファイルを作成します (例: gitops-operator-group.yaml)。

    OperatorGroup の例

    apiVersion: operators.coreos.com/v1
    kind: OperatorGroup
    metadata:
      name: openshift-gitops-operator
      namespace: openshift-gitops-operator
    spec:
      upgradeStrategy: Default
    Copy to Clipboard Toggle word wrap

  3. OperatorGroup をクラスターに適用します。

    $ oc apply -f gitops-operator-group.yaml
    Copy to Clipboard Toggle word wrap

    出力例

    operatorgroup.operators.coreos.com/openshift-gitops-operator created
    Copy to Clipboard Toggle word wrap

  4. Subscription オブジェクトの YAML ファイルを作成し、namespace を Red Hat OpenShift GitOps Operator にサブスクライブします (例: openshift-gitops-sub.yaml)。

    Subscription の例

    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: openshift-gitops-operator
      namespace: openshift-gitops-operator
    spec:
      channel: latest 
    1
    
      installPlanApproval: Automatic
      name: openshift-gitops-operator 
    2
    
      source: redhat-operators 
    3
    
      sourceNamespace: openshift-marketplace 
    4
    Copy to Clipboard Toggle word wrap

    1
    Operator のサブスクライブ元のチャネル名を指定します。
    2
    サブスクライブする Operator の名前を指定します。
    3
    Operator を提供する CatalogSource の名前を指定します。
    4
    CatalogSource の namespace。デフォルトの OperatorHub CatalogSource には openshift-marketplace を使用します。
  5. Subscription をクラスターに適用します。

    $ oc apply -f openshift-gitops-sub.yaml
    Copy to Clipboard Toggle word wrap

    出力例

    subscription.operators.coreos.com/openshift-gitops-operator created
    Copy to Clipboard Toggle word wrap

  6. インストールが完了したら、openshift-gitops namespace のすべての Pod が実行されていることを確認します。

    $ oc get pods -n openshift-gitops
    Copy to Clipboard Toggle word wrap

    出力例

    NAME                                                      	  READY   STATUS    RESTARTS   AGE
    cluster-785cfc5f75-669wq                                      1/1     Running   0          76s
    gitops-plugin-6664c749dd-dx64s                                1/1     Running   0          76s
    openshift-gitops-application-controller-0                     1/1     Running   0          74s
    openshift-gitops-applicationset-controller-549d7f6686-wzckt   1/1     Running   0          74s
    openshift-gitops-dex-server-5d4ffdb9b9-lb7b7                  1/1     Running   0          74s
    openshift-gitops-redis-6d65c94d4b-k9l8k                       1/1     Running   0          75s
    openshift-gitops-repo-server-79db854c58-279jr                 1/1     Running   0          75s
    openshift-gitops-server-f488b848-xntbc                        1/1     Running   0          75s
    Copy to Clipboard Toggle word wrap

  7. openshift-gitops-operator namespace の Pod が実行されていることを確認します。

    $ oc get pods -n openshift-gitops-operator
    Copy to Clipboard Toggle word wrap

    出力例

    NAME                                                            READY   STATUS    RESTARTS   AGE
    openshift-gitops-operator-controller-manager-6fdc5cd9dc-jr9mn   2/2     Running   0          41s
    Copy to Clipboard Toggle word wrap

1.2. デフォルトの Argo CD インスタンスの詳細を分析する

Operator は、デフォルトで openshift-gitops namespace に Argo CD インスタンスを作成します。インストール後、OpenShift Container Platform Web コンソールを使用して Operator details ページを表示し、デフォルトのインスタンス設定を分析できます。この分析は、後でこのインスタンスの動作をカスタマイズするために使用できます。このインスタンスは、クラスター設定に使用することが想定されており、昇格された特権を持っています。

注記

他の namespace に追加の Argo CD インスタンスを作成して、アプリケーションでの使用をサポートすることもできます。

前提条件

  • cluster-admin 権限で OpenShift Container Platform クラスターにアクセスするためのログイン認証情報がある。

手順

  1. 次のいずれかの手順を実行して、Operator details ページを開きます。

    • View Operator ボタンをクリックします。このボタンは、Operator のインストールが完了すると使用可能になります。
    • Operator メニューの Installed Operator をクリックし、Red Hat OpenShift GitOps Operator を選択します。
  2. Argo CD タブを選択します。
  3. デフォルトインスタンスの名前 (openshift-gitops) クリックすると、新しいページに詳細が表示されます。
  4. YAML タブを選択して、設定方法を分析します。

1.3. デフォルトの Argo CD インスタンスにアクセスする

デフォルトの Argo CD インスタンスの詳細を分析した後、Argo CD UI からそのインスタンスにアクセスして使用可能か確認できます。

前提条件

  • cluster-admin 権限で OpenShift Container Platform クラスターにアクセスするためのログイン認証情報がある。

手順

  1. OpenShift Container Platform Web コンソールの右上隅にある Application Launcher メニューをクリックします。
  2. ドロップダウンリストで Cluster Argo CD を選択します。Argo CD のログインページが開きます。
  3. LOG IN VIA OPENSHIFT ボタンをクリックします。OpenShift Container Platform のログインページが開きます。
  4. OpenShift Container Platform の認証情報を入力します。Authorize Access ページが開きます。
  5. Allow selected permissions をクリックして、要求された権限を付与します。Argo CD の UI ページが開きます。

この時点では、Argo CD アプリケーションがまだ作成されていないため、UI は空です。User Info ページでユーザーの詳細を確認できます。

1.4. デフォルトの Argo CD インスタンスを設定する

Operator は openshift-gitops namespace にデフォルトの Argo CD インスタンスを作成しますが、アプリケーションのデプロイやクラスター設定で便利に使用するためには設定が必要です。

  • ロールベースのアクセス制御 (RBAC) を設定する: Argo CD は独自の RBAC 設定を使用します。ユーザーが割り当てられている OpenShift Container Platform クラスターグループによっては、Operator が設定するデフォルトの権限では不十分な可能性があります。
  • 権限を設定する: Operator は、デフォルトインスタンスにデフォルトの Kubernetes 権限セットを設定します。しかし、ただし、リアルタイム環境でアプリケーションをデプロイする場合、これらの権限では不十分です。したがって、このデフォルトインスタンスに追加の権限を付与する必要があります。

1.4.1. RBAC の設定

ユーザーに、デフォルトインスタンスを操作するために十分なアクセス権を付与するには、RBAC を設定する必要があります。

インスタンスの defaultPolicy は空の文字列です。つまり、ロールは自動的に割り当てられません。ユーザーはインスタンスにログインできますが、Argo CD UI または CLI で何かを表示したりタスクを実行したりする権限はありません。

インスタンスには次の 2 つのグループが含まれます。

  • system:cluster-admins: このグループは一時的な kube-admin 認証情報にのみ適用されるため、無視できます。
  • cluster-admins: ユーザーをこのグループに追加すると、Argo CD Web コンソールでアプリケーションのデプロイなどのタスクを実行できるようになります。
注記

デフォルト権限の制限:

defaultPolicy パラメーターに付与された権限は取り消すことができないため、必ず空の文字列または deny-all タイプのロールを使用してください。つまり、権限の付与方法として defaultPolicy パラメーターを設定することは推奨されません。

前提条件

  • cluster-admin 権限で OpenShift Container Platform クラスターにアクセスするためのログイン認証情報がある。
  • oc CLI をインストールした。

手順

  1. Operator がデフォルトインスタンスに設定した RBAC を表示します。

    $ oc get argocd openshift-gitops -n openshift-gitops -o=jsonpath='{.spec.rbac}'
    Copy to Clipboard Toggle word wrap

    出力

    {"defaultPolicy":"","policy":"g, system:cluster-admins, role:admin\ng, cluster-admins, role:admin\n","scopes":"[groups]"}
    Copy to Clipboard Toggle word wrap

  2. cluster-admins グループが存在するか確認します。

    $ oc get groups
    Copy to Clipboard Toggle word wrap
  3. 以下のいずれかの手順を実行します。

    • グループが存在しない場合は、グループを作成してユーザーを追加します。

      $ oc adm groups new cluster-admins <user>
      Copy to Clipboard Toggle word wrap

      ここでは、以下のようになります。

      <user>

      そのグループに追加するユーザーを示します。

      出力例

      group.user.openshift.io/cluster-admins created
      Copy to Clipboard Toggle word wrap

    • グループが存在する場合は、前に実行した oc get groups コマンドの出力で、ユーザーがそのグループに属しているか確認します。ユーザーがグループに属していない場合は、ユーザーをグループに追加します。

      $ oc adm groups add-users cluster-admins <user>
      Copy to Clipboard Toggle word wrap

      ここでは、以下のようになります。

      <user>

      そのグループに追加するユーザーを示します。

      出力例

      group.user.openshift.io/cluster-admins added: "<user>"
      Copy to Clipboard Toggle word wrap

検証

  • cluster-admins グループが存在し、ユーザーがそのグループに属していることを確認します。

    $ oc get groups cluster-admins
    Copy to Clipboard Toggle word wrap

    出力では、cluster-admins グループが表示され、そこにユーザーが割り当てられています。

重要

cluster-admins グループを作成または編集した後は、グループをユーザーに関連付けるために、Argo CD Web コンソールからログアウトしてから再度ログインします。User Info ページで、ユーザーが Argo CD 内の cluster-admins グループに属していることを確認してください。

1.4.2. 権限の設定

デフォルトの Argo CD インスタンスにはデフォルトの Kubernetes 権限セットが自動的に設定されますが、クラスター設定に必要なすべてのリソースをデプロイするには、追加の権限を付与する必要があります。逆に、デフォルトインスタンスに対してより制限的な権限を設定して特定のリソースのみをデプロイする必要がある場合は、追加の設定を通じてそれを実現できます。

注記

デフォルトの Kubernetes 権限セットの詳細は、「関連情報」を参照してください。

クラスター設定にデフォルトインスタンスを使用する場合は、Argo CD アプリケーションコントローラーサービスアカウントに cluster-admin 権限を付与します。その場合は、openshift-gitops-argocd-application-controller サービスアカウントの ClusterRoleBinding オブジェクトを作成します。なぜなら、デフォルトインスタンスは、Kubernetes API と対話してリソースをデプロイするためにこのアカウントを使用するからです。

前提条件

  • cluster-admin 権限で OpenShift Container Platform クラスターにアクセスするためのログイン認証情報がある。
  • oc CLI をインストールした。

手順

  • 以下のコマンドを実行します。

    $ oc adm policy add-cluster-role-to-user --rolebinding-name="openshift-gitops-cluster-admin" cluster-admin -z openshift-gitops-argocd-application-controller -n openshift-gitops
    Copy to Clipboard Toggle word wrap

    出力例

    clusterrole.rbac.authorization.k8s.io/cluster-admin added: "openshift-gitops-argocd-application-controller"
    Copy to Clipboard Toggle word wrap

検証

  • 作成された ClusterRoleBinding オブジェクトを表示します。

    $ oc get clusterrolebinding openshift-gitops-cluster-admin -o yaml
    Copy to Clipboard Toggle word wrap

    出力例

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: openshift-gitops-cluster-admin
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: cluster-admin
    subjects:
      - kind: ServiceAccount
        name: openshift-gitops-argocd-application-controller
        namespace: openshift-gitops
    Copy to Clipboard Toggle word wrap

法律上の通知

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat