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

推薦する

Baidu の「1 つ増やして、1 つ減らす」戦略: 360 ブラウザを上流からブロック

記者が取材したところによると、奇虎360は3B戦争によって起こりうる緊急事態に対処するため、春節期間...

2019年コンテンツ業界半期レポート!

過去6か月間、ニューメディアコンテンツ業界では、「転換」、「草を生やす」、「商品を売る」という言葉が...

百度インデックスキーワード作成サービスがひっそりと開始、1単語あたり50元

少し前、百度インデックスは変更を受けました。最初はアカウントが1日に作成できるキーワードが5つに制限...

#DoubleDanEvent# inxy: CDN プロモーションが 30% オフ (グローバル ノード 246 個)、専用サーバーが 30% オフ、クラウド ストレージが 28% オフ

inxyは、今から1月9日まで、クリスマスと元旦のスーパーセールを開始しました。(1) 6つの主要C...

abelohost: オフショアサーバー、プライバシー保護 + 苦情防止、新しい「簡体字中国語」ウェブページ

中国市場での需要が非常に大きく、中国の顧客があらゆる場所で買い物をしているからかもしれません。そのた...

WorldStream-34 Euro/E3-1230V2/500G ハードディスク/50T フロー/オランダ

worldstream は評判も良く、価格もさらに良いです。オランダのデータセンターでサーバーを販売...

V5.Net: 香港独立サーバー、月額292元から、荃湾データセンター/直接接続最適化、e3-1230/16gメモリ/480gSSD/30M帯域幅

v5.net は現在、香港の荃湾データセンターの独立サーバーに対して 45% オフの定期プロモーショ...

メキシコ サーバー、zenlayer、30% オフ、メキシコ シティ データ センター、10Gbps 帯域幅、月額 622 ドルから

世界的に有名な IDC マーチャントである Zenlayer は、北米南部のメキシコに独自のデータセ...

クラウドの盲点を監視して対処する方法

今日、クラウドは、必要なときに新しいリソースを簡単にプロビジョニングできるなど、多くの利点があるため...

クラウドネイティブアプリケーションセキュリティの完全ガイド

翻訳者 |ジン・ヤンレビュー |チョンロウクラウドネイティブアプリケーションとは何ですか?クラウドネ...

GoDaddyドメイン名の移管方法

現在、中国には多くのドメイン名登録業者が存在します。ドメイン名を移転しようとすると、さまざまな障害に...

HarmonyOSが配布するTikTok風アプリ

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

Sihua Technologyがクラウド時代のストレージをどのように定義しているかをご覧ください

[51CTO.com からのオリジナル記事] ビッグデータ時代の到来により、従来のストレージ アーキ...

ハイブリッドクラウドストレージ、クロスクラウド災害復旧ソリューション、クロスクラウドバックアップ

パブリッククラウド市場の現状、問題、傾向世界のパブリッククラウド市場の観点から見ると、Amazon ...

Huawei Mate Xを長く使い続けるために、2つの大きな問題に注意してください

Huawei Mate XとSamsung Galaxy Foldが発売されて以来、折りたたみ式携...