Cloud Native Experience Kubernetes Ready
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、 こちら までご連絡ください。

CNE Kubernetes Ready: Argo CD による GitOps

Kubernetes Readyデプロイメントでは、GitOpsを使用して、Gitリポジトリを通じてHelmの値、Kubernetesマニフェスト、および環境構成を管理します。 kubectl を使用して手動で変更を適用したり、ワークステーションから Helm コマンドを実行したりする代わりに、GitOps コントローラーが目的の状態をクラスターに統合します。

liferay-default Helm チャートは、すべての入力が宣言的であるため、このモデルに適合します。Helm 値、ConfigMaps、Secrets、およびマウントされた構成ファイルです。

Kubernetes Readyは、Argo CDやFluxなどのコントローラーを通じてGitOpsワークフローをサポートします。

リポジトリ構造

標準的なGitOpsリポジトリ構造では、共有設定と環境固有の値が分離されています。

このレイアウトは、標準的なリポジトリ構造を示しています。

gitops/
├── base
│   ├── liferay-values.yaml
│   ├── search-config.yaml
│   └── storage-config.yaml
├── environments
│   ├── dev
│   │   └── values.yaml
│   ├── staging
│   │   └── values.yaml
│   └── production
│       └── values.yaml
└── applications
    └── liferay-application.yaml

Helmリリースの管理

Kubernetes Ready デプロイメントは、Argo CD を介して liferay-default チャートを調整します。

デプロイメントワークフローは、Helmの値とチャートのバージョンをGitに保存しながら、構成を継続的にクラスターに統合します。

このマニフェストを argocd 名前空間に適用します。 Argo CDはOCIレジストリからHelmチャートを取得し、リポジトリ内の値ファイルと照合します。

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: liferay
  namespace: argocd
spec:
  destination:
    namespace: liferay
    server: https://kubernetes.default.svc

  sources:
    - repoURL: us-central1-docker.pkg.dev/liferay-artifact-registry/liferay-helm-chart
      chart: liferay-default
      targetRevision: 0.6.0
      helm:
        valueFiles:
          - $values/environments/production/values.yaml

    - repoURL: https://git.example.com/platform/gitops.git
      targetRevision: main
      ref: values

  syncPolicy:
    automated:
      prune: true
      selfHeal: true

GitOpsワークフローにおけるシークレットの参照

GitOpsリポジトリは、平文の認証情報をGitに直接保存してはなりません。

代わりに、外部のシークレット管理システムから Kubernetes Secrets を同期し、 customEnvFrom や mounted Secrets などの Kubernetes Ready 構成パターンを介して参照する必要があります。

環境構成

GitOpsリポジトリは、環境ごとに設定を分離します。

環境特有の差異には以下が含まれる。

  • データベースエンドポイント
  • Ingressホスト名
  • レプリカ数
  • リソース要求と制限
  • 検索エンドポイント
  • ストレージ構成

ロールバックとドリフト管理

GitOpsコントローラーは、稼働中のクラスタの状態を、Gitに保存されている望ましい状態と継続的に比較します。

差異が生じた場合、コントローラーは自動的にドリフトを調整し、リソースをコミットされたデプロイメント状態に復元します。

デプロイメントをロールバックするには、Gitで管理されている構成を元に戻し、コントローラーが以前の状態に自動的に戻せるようにします。