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 の目的はキーワードのランキングを向上させることです。しかし、マーチャントにとっては、いくつか...

ウェブサイトのさまざまな段階で外部リンクとコンテンツを割り当てる方法についての簡単な説明

多くの人が疑問に思ったことがあると思います。コンテンツの方が重要なのか、それとも外部リンクの方が重要...

簡単な分析: ソフト記事のプロモーションのチャネルは何ですか?

ソフトテキスト プロモーションのチャネルは何ですか? SEO 担当者にとって、優れたプロモーション ...

SEOチームを構築する際に考慮すべき3つの重要な要素

Baidu アルゴリズムの継続的な調整により、多くの個人ウェブマスターは、正しいウェブサイト最適化方...

Alibaba Cloud、人工知能の実装を加速する新しいFPGAコンピューティングインスタンスF2をリリース

9月12日、Alibaba Cloudは新世代のFPGAコンピューティングインスタンスF2をリリース...

アトランティック - $0.99/KVM/256m メモリ/10Gssd/1T トラフィック/G ポート/3 データセンター

Atlantic、この老舗 IDC が業界の超衝撃ニュースを明かしました。KVM と SSD ハード...

3つのオープンソース分散トレースツール

[[246529]]これらのツールは、複雑なソフトウェア システム内のリアルタイム イベントを視覚化...

#国内# spinservers: 米国ダラスの専用サーバー、1~10Gbps の専用帯域幅、無制限のトラフィック、月額 99 ドルから、e3-1280v5/32gDDR4/1T NVMe

spinservers は、中国の建国記念日に合わせて特別にプロモーションを開始しました。米国ダラス...

ソフトな記事を書くときは、東にフェイントをかけ、西に攻撃することを学ぶべきだ

却下の理由: 記事が読みにくい。引き続き作業を続けてください。若い頃、私はブルース・リーをとても崇拝...

ウェブサイト収益モデルにおける関係マップ

ウェブサイトの収益モデルは、常に議論され続けてきたテーマです。ベンチャーキャピタルの誘致を目指す多く...

インスピレーションを活用してソフトコンテンツマーケティングを推進する

私たちのネットワークプロモーションにおけるソフト記事プロモーションの位置は、「軸」という単語で説明で...

ウェブサイトの最適化中にコンテンツの問題を解決する方法

ウェブサイトを構築したい場合、ウェブサイトのコンテンツなしでは成り立ちません。実際、SEO技術がどれ...

ベッドの暖かさを捨てて、ただこれだけのために丨鴻蒙システムで動くアプリケーションYunku丨パート1

[[379371]]詳細については、以下をご覧ください。 51CTOとHuaweiが共同で構築したH...