OpenShift GitOps について
OpenShift GitOps の概要
概要
第1章 GitOps とは リンクのコピーリンクがクリップボードにコピーされました!
GitOps は、クラウドネイティブアプリケーションの継続的デプロイメントを実装するための宣言的な方法です。GitOps を使用して、複数クラスターの Kubernetes 環境全体で、OpenShift Container Platform クラスターおよびアプリケーションを管理するための反復可能なプロセスを作成できます。GitOps は、速いペースで複雑なデプロイメントを処理して自動化し、デプロイメントおよびリリースサイクルでの時間を節約します。
GitOps ワークフローは、開発、テスト、ステージング、および実稼働環境にアプリケーションをプッシュします。GitOps は新しいアプリケーションをデプロイするか、既存のアプリケーションを更新するため、必要なのはリポジトリーの更新のみとなります。他のものはすべて GitOps が自動化します。
GitOps は、Git プル要求を使用してインフラストラクチャーおよびアプリケーションの設定を管理する一連の手法で設定されます。GitOps では、Git リポジトリーが、システムおよびアプリケーション設定の信頼できる唯一の情報源 (source of truth) になります。この Git リポジトリーには、指定した環境に必要なインフラストラクチャーの宣言的な説明が含まれ、環境を説明した状態に一致させるための自動プロセスが含まれます。また、Git リポジトリーにはシステムの全体の状態が含まれるため、システムの状態への変更の追跡情報が表示され、監査可能になります。GitOps を使用することで、インフラストラクチャーおよびアプリケーション設定のスプロールの問題を解決します。
GitOps は、インフラストラクチャーおよびアプリケーションの定義をコードとして定義します。次に、このコードを使用して複数のワークスペースおよびクラスターを管理し、インフラストラクチャーおよびアプリケーション設定の作成を単純化します。コードの原則に従って、クラスターおよびアプリケーションの設定を Git リポジトリーに保存し、Git ワークフローに従って、これらのリポジトリーを選択したクラスターに適用することができます。Git リポジトリーでのソフトウェアの開発およびメンテナンスのコアとなる原則を、クラスターおよびアプリケーションの設定ファイルの作成および管理に適用できます。
第2章 Red Hat OpenShift GitOps について リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift GitOps は、宣言型の GitOps エンジンである Argo CD を使用する Operator です。これにより、マルチクラスター OpenShift および Kubernetes インフラストラクチャー全体で GitOps ワークフローが可能になります。管理者は、Red Hat OpenShift GitOps を使用して、クラスターおよび開発ライフサイクル全体で Kubernetes ベースのインフラストラクチャーとアプリケーションを一貫して設定およびデプロイできます。Red Hat OpenShift GitOps は、オープンソースプロジェクト Argo CD をベースにしています。アップストリームが提供するものと同様の一連の機能に加えて、さらなる自動化、Red Hat OpenShift Container Platform への統合、Red Hat のエンタープライズサポートの利点 (品質保証とエンタープライズセキュリティーの重視) を提供します。
Red Hat OpenShift GitOps は OpenShift Container Platform とは異なる頻度でリリースされるため、Red Hat OpenShift GitOps ドキュメントは製品のマイナーバージョンごとに個別のドキュメントセットとして利用できるようになりました。
Red Hat OpenShift GitOps ドキュメントは https://docs.openshift.com/gitops/ で利用できます。
特定のバージョンのドキュメントは、バージョンセレクターのドロップダウンを使用するか、URL にバージョン (https://docs.openshift.com/gitops/1.8 など) を直接追加すると利用できます。
さらに、Red Hat OpenShift GitOps ドキュメントは、Red Hat カスタマーポータル (https://access.redhat.com/documentation/ja-jp/red_hat_openshift_gitops/) でも利用できます。
Red Hat OpenShift GitOps のライフサイクルとサポートされるプラットフォームに関する追加情報は、プラットフォームのライフサイクルポリシー を参照してください。
Red Hat OpenShift GitOps は、異なる環境 (開発、ステージ、実稼働環境など) の異なるクラスターにアプリケーションをデプロイする場合に、アプリケーションの一貫性を確保します。Red Hat OpenShift GitOps は、設定リポジトリーに関連するデプロイメントプロセスを整理し、それらを中心的な要素にします。これには、少なくとも 2 つのリポジトリーが常に含まれます。
- ソースコードを含むアプリケーションリポジトリー
- アプリケーションの必要な状態を定義する環境設定リポジトリー
これらのリポジトリーには、指定した環境で必要なインフラストラクチャーの宣言的な説明が含まれます。また、環境を記述された状態に一致させる自動プロセスも含まれています。
Red Hat OpenShift GitOps は Argo CD を使用してクラスターリソースを維持します。Argo CD は、アプリケーションの継続的デプロイメント (CD) のためのオープンソースの宣言型ツールです。Red Hat OpenShift GitOps は Argo CD をコントローラーとして実装し、Git リポジトリーで定義されるアプリケーション定義および設定を継続的に監視します。次に、Argo CD は、これらの設定の指定された状態をクラスターのライブ状態と比較します。
Argo CD は、指定した状態から逸脱する設定を報告します。これらの報告により、管理者は、設定を定義された状態に自動または手動で再同期することができます。したがって、ArgoCD を使用して、OpenShift Container Platform クラスターを設定するために使用されるリソースなどのグローバルカスタムリソースを配信できます。
2.1. 主な特長 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift GitOps は、以下のタスクを自動化する上で役立ちます。
- クラスターに設定、モニタリングおよびストレージについての同様の状態があることの確認。
- 複数の OpenShift Container Platform クラスターに対する設定変更を適用するか、これを元に戻す。
- テンプレート化された設定の複数の異なる環境への関連付け。
- ステージから実稼働環境へと、クラスター全体でのアプリケーションのプロモート。
第3章 サポート用の診断情報の収集 リンクのコピーリンクがクリップボードにコピーされました!
サポートケースを開くときは、クラスターに関するデバッグ情報を Red Hat サポートチームに提供する必要があります。must-Gather ツールを使用して、プロジェクトレベルのリソース、クラスターレベルのリソース、および Red Hat OpenShift GitOps コンポーネントの診断情報を収集できます。
迅速なサポートが必要な場合は、OpenShift Container Platform と Red Hat OpenShift GitOps の両方の診断情報を提供してください。
3.1. must-gather ツールについて リンクのコピーリンクがクリップボードにコピーされました!
oc adm must-gather CLI コマンドは、以下のような問題のデバッグに必要となる可能性のあるクラスターからの情報を収集します。
- リソース定義
- サービスログ
デフォルトで、oc adm must-gather コマンドはデフォルトのプラグインイメージを使用し、./must-gather.local に書き込みを行います。
または、以下のセクションで説明されているように、適切な引数を指定してコマンドを実行すると、特定の情報を収集できます。
1 つ以上の特定の機能に関連するデータを収集するには、以下のセクションに示すように、イメージと共に
--image引数を使用します。コマンドの例
oc adm must-gather --image=registry.redhat.io/openshift-gitops-1/must-gather-rhel8:v1.9.0
$ oc adm must-gather --image=registry.redhat.io/openshift-gitops-1/must-gather-rhel8:v1.9.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 監査ログを収集するには、以下のセクションで説明されているように
-- /usr/bin/gather_audit_logs引数を使用します。コマンドの例
oc adm must-gather -- /usr/bin/gather_audit_logs
$ oc adm must-gather -- /usr/bin/gather_audit_logsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記ファイルのサイズを小さくするために、監査ログはデフォルトの情報セットの一部として収集されません。
oc adm must-gather を実行すると、ランダムな名前を持つ新規 Pod がクラスターの新規プロジェクトに作成されます。データは Pod で収集され、must-gather.local で始まる新規ディレクトリーに保存されます。このディレクトリーは、現行の作業ディレクトリーに作成されます。
サンプル Pod
NAMESPACE NAME READY STATUS RESTARTS AGE ... openshift-must-gather-5drcj must-gather-bklx4 2/2 Running 0 72s openshift-must-gather-5drcj must-gather-s8sdh 2/2 Running 0 72s ...
NAMESPACE NAME READY STATUS RESTARTS AGE
...
openshift-must-gather-5drcj must-gather-bklx4 2/2 Running 0 72s
openshift-must-gather-5drcj must-gather-s8sdh 2/2 Running 0 72s
...
任意で、--run-namespace オプションを使用して、特定の namespace で oc adm must-gather コマンドを実行できます。
コマンドの例
oc adm must-gather --image=registry.redhat.io/openshift-gitops-1/must-gather-rhel8:v1.9.0
$ oc adm must-gather --image=registry.redhat.io/openshift-gitops-1/must-gather-rhel8:v1.9.0
3.2. Red Hat OpenShift GitOps のデバッグデータの収集 リンクのコピーリンクがクリップボードにコピーされました!
oc adm must-gather CLI コマンドを使用して、Red Hat OpenShift GitOps に関連付けられているクラスターに関する次の詳細を収集します。
- Red Hat OpenShift GitOps Operator のサブスクリプションと namespace。
-
ArgoCD オブジェクトが利用できる namespace と、
ArgoCD、Applications、ApplicationSets、AppProjects、configmapsなどのこれらの namespace のオブジェクト。 - Red Hat OpenShift GitOps Operator によって管理される namespace の一覧およびそれらの namespace からのリソース。
- すべての GitOps 関連のカスタムリソースオブジェクトと定義。
- Operator および Argo CD のログ。
- 警告およびエラーレベルのイベント。
前提条件
- OpenShift Container Platform クラスターに管理者としてログインしていること。
-
OpenShift Container Platform CLI (
oc) をインストールしている。 - Red Hat OpenShift GitOps Operator がインストールされている。
手順
- デバッグ情報を保存するディレクトリーに移動します。
Red Hat OpenShift GitOps の
must-gatherイメージを使用してoc adm must-gatherコマンドを実行します。oc adm must-gather --image=registry.redhat.io/openshift-gitops-1/must-gather-rhel8:<image_version_tag>
$ oc adm must-gather --image=registry.redhat.io/openshift-gitops-1/must-gather-rhel8:<image_version_tag>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- GitOps の must-gather イメージ。
コマンドの例
oc adm must-gather --image=registry.redhat.io/openshift-gitops-1/must-gather-rhel8:v1.9.0
$ oc adm must-gather --image=registry.redhat.io/openshift-gitops-1/must-gather-rhel8:v1.9.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow must-gatherツールは、現在のディレクトリーに./must-gather.localで始まる新しいディレクトリーを作成します。例:./must-gather.local.4157245944708210399.作成したばかりのディレクトリーから圧縮ファイルを作成します。たとえば、Linux オペレーティングシステムを使用するコンピューターで以下のコマンドを実行します。
tar -cvaf must-gather.tar.gz must-gather.local.4157245944708210399
$ tar -cvaf must-gather.tar.gz must-gather.local.41572459447082103991 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
must-gather-local.4157245944708210399は、実際のディレクトリー名に置き換えます。
- 圧縮ファイルを Red Hat カスタマーポータル で作成したサポートケースに添付します。