Argo CD の UI を使用して Flux アプリケーションを視覚的に管理しますか?

Argo CD の UI を使用して Flux アプリケーションを視覚的に管理しますか?

Flux プロジェクトはもともと Flux クラスターを管理するための Web UI を提供していましたが、プロジェクトはアーカイブされてお​​り、FluxCD 組織では開発が行われていないため、ここでは紹介しません。 Web UI を使用して Flux クラスターを管理する場合は、Flux 用の無料のオープンソース GUI を提供する Weaveworks が提供する weave-gitops ( https://github.com/weaveworks/weave-gitops ) プロジェクトを使用できます。

ギトップスを編む

Weave GitOps は、開発者のエクスペリエンスを向上させ、Kubernetes 上でクラウドネイティブ アプリケーションをデプロイおよび管理する際の複雑さと認知的負担を簡素化し、チームの作業を高速化します。これは、Flux の強力な拡張機能です。

Weave GitOps は、アプリケーション オペレーターが問題を簡単に発見して解決できるようにし、GitOps と継続的デリバリーの導入を簡素化および拡張します。 UI はガイド付きのエクスペリエンスを提供し、ユーザーが Flux オブジェクト間の関係を簡単に発見して理解を深めるとともに、アプリケーションの展開に関する洞察を提供します。

Weave GitOps は当初、オープンソース バージョンとエンタープライズ バージョンを提供します。 OSS バージョンは、Kubernetes の専門知識はないが、クラウドネイティブ アプリケーションを必要とするユーザー向けのシンプルなオープン ソース開発プラットフォームです。これには、チームが単純な CI/CD システムを超えた機能を実現できるようにする UI やその他の多くの機能が含まれています。 GitOps を有効にしてクラスター内でアプリケーションを実行するのがいかに簡単か体験してください。もちろん、ここではオープンソース版を使用します。

Weave GitOps は、ユーザーがリソースを作成および管理するのに役立つコマンドライン インターフェイスを提供します。 gitops CLI は現在、Mac (x86 および Arm) および Linux (Windows Subsystem for Linux (WSL) を含む) でサポートされています。

gitops CLI をインストールする方法は複数あります。

 $ curl --silent --location "https://github.com/weaveworks/weave-gitops/releases/download/v0.32.0/gitops-$(uname)-$(uname -m).tar.gz" | tar xz -C /tmp $ sudo mv /tmp/gitops /usr/local/bin $ gitops version Current Version: 0.32.0 GitCommit: 49a4249d8c205f14f0777c921cd69c04951e208f BuildTime: 2023-09-13T17:23:13Z Branch: releases/v0.32.0

もちろん、Mac ユーザーであれば、Homebrew を使用してワンクリックでインストールできます。

 brew tap weaveworks/tap brew install weaveworks/tap/gitops

CLI ツールがインストールされると、Weave GitOps をデプロイできるようになります。私達はします:

  • GitOps CLI ツールを使用して、HelmRelease オブジェクトと HelmRepository オブジェクトを生成します。
  • ダッシュボードにアクセスするためのログイン資格情報を作成します。
  • 生成された yaml をインフラストラクチャ リポジトリにコミットします。
  • クラスターに同期されていることを確認します。

Flux をインストールしたインフラストラクチャ コード リポジトリは http://gitlab.k8s.local/cnych/flux です。ここで、このリポジトリをローカルにクローンします。

 $ git clone http://gitlab.k8s.local/cnych/flux $ cd flux

次に、次のコマンドを実行して、HelmRepository と HelmRelease を作成し、Weave GitOps をデプロイします。

 PASSWORD="gitops321" # 设置登录密码gitops create dashboard ww-gitops \ --password=$PASSWORD \ --export > ./clusters/my-cluster/weave-gitops-dashboard.yaml

このコマンドはパスワードのハッシュを保存します。これはデモンストレーションやテストの目的には比較的安全ですが、実稼働システムではより安全なキー保存方法 (Flux の SOPS 統合など) を使用することを強くお勧めします。

次に、weave-gitops-dashboard.yaml をコミットし、flux ベース リポジトリにプッシュします。

 git add -A && git commit -m "Add Weave GitOps Dashboard" git push

しばらくすると、デプロイメントが成功したかどうかを確認できます。

 $ kubectl get pods -n flux-system

Weave GitOps のデプロイメントをカスタマイズしたい場合は、Helm Chart の値を構成することでカスタマイズできます。設定可能なパラメータについては、ドキュメントを参照してください: https://docs.gitops.weave.works/docs/references/helm-reference/。

ここで、Weave GitOps Web UI にアクセスします。これは、kubectl port-forward コマンドを使用して実行できます。

 kubectl port-forward svc/ww-gitops-weave-gitops -n flux-system 9001:9001

次に、ブラウザから http://localhost:9001 にアクセスし、ユーザー名として admin、パスワードとして先ほど設定した PASSWORD の値を入力してログインすることで、Weave GitOps Web UI にアクセスできます。

ギトップスを編む

ログインすると、[アプリケーション] ビューが表示されます。このビューでは、デプロイメントのステータスの概要が簡単に表示され、Kustomization オブジェクトと HelmRelease オブジェクトの概要情報が表示されます。右上隅のトグルスイッチを使用してダークモードを適用することもできます。

アプリケーション

flux-system インフラストラクチャ Kustomization オブジェクトを調べてみましょう。アプリケーション ビューに戻り、 flux-system オブジェクトをクリックします。

フラックスシステムの詳細

データの読み込みには時間がかかる場合があります。読み込みが完了すると、上記のスクリーンショットのような結果が表示されます。ここでは、リソース定義に関する重要な情報が見つかります。

  • どのソースを読み取っているか。
  • 最新の申請書の提出。
  • デプロイされるソース リポジトリへの正確なパス。
  • Flux が宣言された状態とリアルタイムの状態の間の矛盾を調整しようとする間隔。たとえば、クラスターに kubectl パッチが適用された場合、パッチは実質的に元に戻されます。オブジェクトがより長いエラー メッセージを報告する場合、このページで完全なエラー メッセージを確認できます。

UI の左側のメニューで、[SOURCES] ビューをクリックすると、Flux がアプリケーション定義をどこから取得しているか (Git リポジトリなど) と、その同期の現在のステータスが表示されます。ソースには、GitRepository、HelmRepository、HelmChart、Bucket オブジェクトからの概要情報が表示されます。

ソースリスト

ソース テーブル ビューにはステータスに関する情報が表示されるので、Flux が特定のソースから正常にプルできたかどうか、最後に検出された特定のコミットを確認できます。指定されたソースの場所で Flux が更新をチェックする頻度を示す INTERVAL などの重要な情報が表示されます。ソースが検証されているかどうかも確認できます。

さらに、イメージオートメーションページ、ポリシーページ、通知ページなどの機能もあります。ただし、この UI は主に表示に使用されていることがわかります。ページを通じてリソース オブジェクトを作成することはできないため、Flux クラスターを管理するにはコマンド ラインを使用することをお勧めします。

フラミンゴ

Flamingo は Argo の Flux サブシステム (FSA) です。 Flamingo のコンテナ イメージは、同等の ArgoCD バージョンのプラグイン拡張機能として使用して、Argo CD とともに Flux ワークロードを視覚化および管理できます。

ループバック調整は、GitOps 方法論を使用してデプロイされたアプリケーションの同期を支援する Flamingo の機能です。これは、Argo CD ユーザー インターフェイスで FluxSubsystem 機能が有効になっている場合にアクティブになります。仕組みは次のとおりです。

  • Argo CD アプリケーション マニフェストを作成し、Kustomization または Helm モードでクラスターにデプロイします。
  • Flamingo は、Argo CD マニフェストで使用されるスキーマに応じて、Argo CD アプリケーション マニフェストを同等の Flux オブジェクト (Kustomization オブジェクトまたは Source を持つ HelmRelease オブジェクト) に変換します。アプリケーション内に Flux オブジェクトが既に存在する場合、Flamingo は新しいオブジェクトを作成する代わりに、それらを参照として使用します。
  • Flamingo は、Flux オブジェクトの状態を目的の状態として使用して、Argo CD アプリケーションの状態を Flux の対応する状態と同期または調整します。このため、ループバック チューニング メカニズムは、Argo CD のネイティブ調整プロセスをバイパスし、代わりに Flux チューニングに依存します。次に、Flux オブジェクトを使用して結果を Argo CD に報告します。

ループバック調整は、アプリケーションの状態を Flux オブジェクトで定義された目的の状態と同期させることにより、GitOps ベースのデプロイメントの信頼性と一貫性を確保するのに役立ちます。

仕事のやり方

Flamingo のインストールは比較的簡単で、Flux Kustomization オブジェクトを通じてデプロイし、以下に示すようにリソース オブジェクトを作成できます。

 # flamingo.yaml apiVersion: source.toolkit.fluxcd.io/v1beta2 kind: OCIRepository metadata: name: fsa-demo namespace: flux-system spec: interval: 30s url: oci://ghcr.io/flux-subsystem-argo/flamingo/manifests ref: tag: latest --- apiVersion: kustomize.toolkit.fluxcd.io/v1 kind: Kustomization metadata: name: fsa-demo namespace: flux-system spec: prune: true interval: 2m path: "./demo" sourceRef: kind: OCIRepository name: fsa-demo timeout: 3m

次に、リソース オブジェクトを適用します。

 $ kubectl apply -f flamingo.yaml $ kubectl get ocirepository fsa-demo -n flux-system NAME URL READY STATUS AGE fsa-demo oci://ghcr.io/flux-subsystem-argo/flamingo/manifests True stored artifact for digest 'latest@sha256:e9df1250e9e9ae2931a6121b11f30f989cb20aaa4326659fd8ee5b6dd8ddec94' 72s $ kubectl get kustomization fsa-demo -n flux-system NAME AGE READY STATUS fsa-demo 82s True Applied revision: latest@sha256:e9df1250e9e9ae2931a6121b11f30f989cb20aaa4326659fd8ee5b6dd8ddec94

上記のリソース オブジェクトは、argocd 名前空間を作成し、Argo CD のすべてのコンポーネントをデプロイします。

 $ kubectl get pods -n argocd NAME READY STATUS RESTARTS AGE argocd-application-controller-0 1/1 Running 0 2m16s argocd-applicationset-controller-c9b9899d6-t4gh6 1/1 Running 0 2m16s argocd-dex-server-798cc6585d-dtc4k 1/1 Running 0 2m16s argocd-notifications-controller-5b77dc9659-7t9cw 1/1 Running 0 2m16s argocd-redis-b5d6bf5f5-6kdgc 1/1 Running 0 2m16s argocd-repo-server-785445967d-xxrq7 1/1 Running 0 2m16s argocd-server-758f648df4-8zhc5 1/1 Running 0 2m16s

argocd がデプロイされたら、kubectl port-forward コマンドを使用して Argo CD Web UI にアクセスできます。

 $ kubectl -n argocd port-forward svc/argocd-server 8003:443

次に、ブラウザで https://localhost:8003 にアクセスして、Argo CD Web UI にアクセスします。

アルゴCD

デフォルトでは、2 つの FSA アプリケーションがあり、各アプリケーションは 1 つの Flux Kustomization と 1 つの Flux GitRepository で構成されます。

argocd アプリ

既存のクラスターに Argo CD がすでにインストールされている場合は、次のコマンドを使用して既存の Argo CD をアップグレードできます。 Argo CD がすでにインストールされている場合は、既存のインストール済みイメージを FSA のイメージに置き換えることができます。

 kustomize build https://github.com/flux-subsystem-argo/flamingo//release?ref=${FSA_VERSION} \ | yq e '. | select(.kind=="Deployment" or .kind=="StatefulSet")' - \ | kubectl -n argocd apply -f -

既存の Flux アプリケーションを FSA アプリケーションに変換する場合は、flamingo CLI コマンドを使用してこれを実現できます。まず、flamingo コマンドライン ツールをインストールし、Flamingo CLI リリース ページに移動して対応するバージョンをダウンロードし、それを解凍してバイナリ ファイルを /usr/local/bin ディレクトリに移動します。

 $ flamingo --version flamingo version 0.3.1

CLI ツールをインストールしたら、既存の Flux アプリケーションを FSA アプリケーションに変換できます。たとえば、次のように Flux Kustomization オブジェクトを作成します。

 cat << EOF | kubectl apply -f - --- apiVersion: v1 kind: Namespace metadata: name: podinfo-kustomize --- apiVersion: source.toolkit.fluxcd.io/v1beta2 kind: OCIRepository metadata: name: podinfo namespace: podinfo-kustomize spec: interval: 10m url: oci://ghcr.io/stefanprodan/manifests/podinfo ref: tag: latest --- apiVersion: kustomize.toolkit.fluxcd.io/v1 kind: Kustomization metadata: name: podinfo namespace: podinfo-kustomize spec: interval: 10m targetNamespace: podinfo-kustomize prune: true sourceRef: kind: OCIRepository name: podinfo path: ./ EOF

作成後、次のコマンドを使用して FSA アプリケーションを生成できます。

 flamingo generate-app \ --app-name=podinfo-ks \ -n podinfo-kustomize ks/podinfo

作成が完了したら、Argo CD Web UI にアクセスして、FSA アプリケーションが生成されていることを確認します。

アルゴCDUI

このようにして、Argo CD Web UI インターフェースを通じて Flux アプリケーションを管理できます。

<<:  K8s は私たちを混乱に陥れました!

>>:  Docker と Kubernetes を使用したコンテナ化されたスマート シティ ソリューション

推薦する

ウェブサイトSEOでお金を稼ぐ代替手段 莫大な利益 美学

数日前、私は100 IPのウェブサイトが10,​​000 IPのウェブサイトよりも多くの利益をもたら...

SUSE、ローカリゼーション向けRancher Enterprise Edition 2.6をリリース

Rancher Enterprise Edition は、「Rancher China」の時代に初め...

分析: ウェブサイトがランク付けされないいくつかの理由

ウェブサイトがランク付けされない理由はたくさんあります。ここでは、いくつかの典型的な問題について説明...

Hawkhost: 「ボクシング デー」を祝う 70% オフ プロモーション、香港/シンガポール/米国での 2 年間のホスティングがわずか 21 ドル

Hawkhost はクリスマスとボクシング デーに特別プロモーションを実施しています。このプロモーシ...

企業ウェブサイト最適化の4つのステップについての簡単な説明

企業ウェブサイトの最適化は人々の間で話題になっています。ほとんどの SEO 担当者がこの作業を行って...

特典: directspace-VPS 1年間購入で1年間無料/サーバーレンタル/ホスティング/半年購入で半年無料

directspace は、ロサンゼルス データ センター (自社運営データ センター) の開設を記...

M247-著作権なしホスト、年間支払い11ユーロ、無制限トラフィック

一部の人にとっては、ビジネスがやや特殊で、クラックされたソフトウェアや外国貿易用の偽造品など、著作権...

ウェブサイトのコンテンツを更新するときに無駄なコンテンツの蓄積を避ける方法

ウェブサイトのコンテンツの更新は、SEO 最適化において重要な役割を果たします。検索エンジン最適化で...

Prometeus の iwstack クラウドがオンラインになりました

Prometeus の VPS クラウドが正式にリリースされました! iwStack の基本機能: ...

Bステーションが流行したことによる副作用

多くのニッチな文化が人気を博す過程で、大衆の好みにより合うように部分的な変化が必然的に起こります。し...

SEO担当者としては、最適化の前にウェブサイトの位置付けと計画に注意を払う必要があります。

SEO業界は基本的に白熱した段階に達しています。SEO最適化業界に従事する人の数は絶えず増加していま...

そもそもウェブサイトのホームページがないのはなぜですか?

以前、ウェブサイトのホームページが検索エンジンのSITEで1位にならない状況についてお話ししました。...

検索エンジンによるウェブページのクロール、インデックス作成、ランキングを改善する方法

次に、多くの SEO 担当者が誤解している重要な概念について説明します。昔は、検索エンジンのクローラ...

さまざまな業界でのソフトコピー編集スキルの共有

SEO 業界の多くの人は、複数のプロジェクトを抱えており、まったく関係のない複数の異なる業界のプロジ...