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 を使用したコンテナ化されたスマート シティ ソリューション

推薦する

巨大企業の理想的なビジネス:モバイルインターネットで高収益エリアを見つける

昨年以来、中国の3大インターネット企業BATは大規模な買収や投資を活発に行っており、特にテンセントと...

ウェブサイトテンプレートの最適化テストの詳細分析

最適化におけるテンプレートの役割: テンプレートは、Web サイトのコンテンツのレイアウトと Web...

virmach-$2/Win/1g メモリ/15g SSD/1T トラフィック/ロサンゼルス/シカゴ/ニューヨーク

ゲーム機会社としてスタートした virmach.com が、新しくて役立つ情報を発表しました。この ...

イラク VPS/イラク専用サーバー: regxa、VPS の月額料金は 15 ドルから、専用サーバーは 90 ドルから (AMD Ryzen)

regxa (year~) は現在、イラク VPS、イラク サーバー (イラク独立サーバー/物理マシ...

ついに誰かがDevOpsをわかりやすく説明してくれた

[[427652]]この記事はWei XinyuとGuo Yuejunが執筆したWeChatパブリッ...

SAP Concur は企業の海外進出を促進し、グローバル化に対応します

今日、経済のグローバル化は不可逆的な流れとなっている。中国企業も経済のグローバル化の流れの中でますま...

超シンプルなKubernetes

Kubernetesでプロジェクトを開始するために必要なものすべてマイクロサービス、クラウド コンピ...

王通:世界から見た広東企業のイノベーション

>過去6か月間、私は頻繁に広東省を訪れ、毎日さまざまな起業家と議論してきました。理解が深まるに...

Meituan もビッグデータを活用して古い顧客をターゲットにしているのでしょうか?

著者: 魏傑、唐亜華編集者: ドーン12月17日、「美団会員に騙された」という記事が話題になった。記...

WeChatマーケティング活動のための4つのヒント

WeChat マーケティングは多くの企業にとって必要な手段の 1 つになっていますが、うまく実行して...

「今日頭検索」がPC版でリリースされました。今日頭検索は勢いづいていますか?

この二日間、パソコンでToutiaoを開くと、突然ホームページの上部に検索セクションがあるのを見つけ...

テンセントのルール変更がタオバオアフィリエイトに与える影響(第2部):悪質なマーケティング活動への対策

前回の記事「テンセントのルール変更がタオバオアフィリエイトに与える影響(パート1)」では、テンセント...

#11.11# 馬華クラウド: 香港 CN2 クラウド サーバーは月額 9 元から、安徽モバイル BGP クラウドは月額 29 元から

Mahua Cloud(2007年に設立されたと主張)は現在、香港の将軍澳でのAnhui Mobil...

Amazon RDS の紹介

Amazon Relational Database Service (Amazon RDS) を使...

カザフスタンの VPS: pqhosting、月額 3.77 ユーロから、1G メモリ/1 コア/15g SSD/G ポート無制限トラフィック

中央アジアのカザフスタン VPS は市場では珍しいようですね。現在、pq.hosting はカザフス...