成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用 Argo CD 的 UI 界面可視化管理 Flux 應用?

云計算 云原生
Weave GitOps 改善了開發人員體驗,簡化了在 Kubernetes 上部署和管理云原生應用程序的復雜性和認知負擔,使團隊可以更快地開展工作,它是 Flux 的一個強大擴展。

Flux 項目原本提供了一個 Web UI 來管理 Flux 集群,但該項目已經存檔,FluxCD 組織不再開發,所以我們這里不再介紹了,如果你想使用 Web UI 來管理 Flux 集群,可以使用 Weaveworks 提供的 weave-gitops(https://github.com/weaveworks/weave-gitops) 項目,該下面為 Flux 提供了一個免費的開源 GUI。

weave gitops

Weave GitOps 改善了開發人員體驗,簡化了在 Kubernetes 上部署和管理云原生應用程序的復雜性和認知負擔,使團隊可以更快地開展工作,它是 Flux 的一個強大擴展。

Weave GitOps 可以幫助應用程序運維人員輕松發現和解決問題 - 簡化和擴展 GitOps 和持續交付的采用。UI 提供了引導式體驗,可幫助用戶輕松發現 Flux 對象之間的關系并加深理解,同時提供對應用程序部署的見解。

Weave GitOps 初了提供了一個開源的版本之外,還有一個企業版本,其 OSS 版本是一個簡單的開源開發者平臺,適合那些沒有 Kubernetes 專業知識但想要云原生應用程序的人。它包括 UI 和許多其他功能,使團隊超越簡單的 CI/CD 系統。體驗啟用 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 對象。
  • 創建一些登錄憑據來訪問 Dashboard。
  • 將生成的 yaml 提交到我們的基礎設施代碼庫。
  • 觀察它們是否已同步到集群。

前面我們安裝 Flux 的基礎設施代碼倉庫為 http://gitlab.k8s.local/cnych/flux,現在我們 Clone 這個倉庫到本地:

$ 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 的 Values 來實現,可配置的參數可以參考文檔: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 來訪問 Weave GitOps 的 Web UI 了,輸入用戶名為 admin,密碼為前面配置的 PASSWORD 的值,即可登錄:

weave gitops

登錄后,可以將進入 APPLICATIONS 視圖,該視圖可以快速了解部署的狀態并顯示來自 Kustomization 和 HelmRelease 對象的摘要信息。我們還可以使用右上角的切換開關應用深色模式。

APPLICATIONS

讓我們來探索下 flux-system 這個基礎設施 Kustomization 對象,返回到應用程序視圖,并點擊 flux-system 對象。

flux-system detail

可能需要一些時間來加載數據。一旦加載完成,應該會得到一個類似上面截圖的結果。在這里,可以找到有關資源定義的關鍵信息。

  • 它正在讀取哪個來源 Source。
  • 最新應用的提交。
  • 正在部署的源存儲庫的確切路徑。
  • Flux 將尋求調諧聲明狀態和實時狀態之間任何差異的時間間隔 Interval。例如,如果集群上應用了 kubectl 補丁,它將被有效地恢復。如果該對象報告了較長的錯誤消息,您將能夠在此頁面上看到完整的錯誤消息。

在 UI 的左側菜單中,單擊 SOURCES 視圖,這將向你顯示 Flux 從何處提取其應用程序定義(例如 Git 存儲庫)以及該同步的當前狀態。Sources 顯示來自 GitRepository、HelmRepository、HelmChart 和 Bucket 對象的摘要信息。

源列表

Sources 表視圖顯示有關狀態的信息,以便可以查看 Flux 是否能夠從給定源成功拉取,以及最后檢測到哪個特定提交。它向你顯示諸如 INTERVAL 之類的關鍵信息,即 Flux 在指定源位置檢查更新的頻率。你還可以查看該來源是否經過驗證。

除此之外還有其他的一些功能,比如 IMAGE AUTOMATION 頁面、POLICIES 也沒、NOTIFICATIONS 頁面等等。但是可以發現這個 UI 主要是用于展示的,我們并不能通過頁面去創建資源對象,所以我們還是推薦使用命令行來管理 Flux 集群。

Flamingo

Flamingo 是 Argo 的 Flux 子系統(FSA),Flamingo 的容器鏡像可以作為等效的 ArgoCD 版本的插件擴展,與 Argo CD 一起可視化和管理 Flux 工作負載。

Loopback Reconciliation 是 Flamingo 的一項功能,有助于同步使用 GitOps 方法部署的應用程序。當 Argo CD 用戶界面中啟用 FluxSubsystem 功能時,它會被激活。其工作原理如下:

  • 在 Kustomization 或 Helm 模式下創建 Argo CD 應用程序清單并將其部署到集群。
  • Flamingo 將 Argo CD 應用程序清單轉換為等效的 Flux 對象,可以是 Kustomization 對象,也可以是帶有 Source 的 HelmRelease 對象,具體取決于 Argo CD 清單中使用的模式。如果應用程序中已存在 Flux 對象,Flamingo 將使用它們作為引用,而不是創建新對象。
  • Flamingo 通過使用 Flux 對象的狀態作為所需狀態來同步或協調 Argo CD 應用程序的狀態與其 Flux 對應項。為此,環回調諧機制繞過了 Argo CD 中的本機協調過程,而是依賴于 Flux 調諧。然后它使用 Flux 對象的結果向 Argo CD 報告。

Loopback Reconciliation 通過使應用程序的狀態與 Flux 對象中定義的所需狀態保持同步,有助于確保基于 GitOps 的部署的可靠性和一致性。

how to work

要安裝 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 了。

argocd

默認情況下會有 2 個 FSA 應用,每個應用程序由 1 個 Flux 的 Kustomization 和 1 個 Flux 的 GitRepository 組成。

argocd app

如果你現有集群中已經安裝了 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 Release 頁面下載對應的版本即可,然后解壓后將二進制文件移動到 /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 應用:

argocd ui

這樣我們就可以通過 Argo CD 的 Web UI 界面來管理 Flux 的應用了。

責任編輯:姜華 來源: k8s技術圈
相關推薦

2021-12-08 12:20:55

KubernetesGitOpsLinux

2022-04-15 11:32:20

IDE工具鴻蒙操作系統

2020-03-11 14:39:26

數據可視化地圖可視化地理信息

2015-08-20 10:00:45

可視化

2018-10-22 15:34:31

Spring Boo監控視化

2020-03-01 14:01:22

Echarts數據可視化圖表

2024-05-22 08:03:15

2023-09-27 08:24:49

2024-09-11 09:25:00

2022-08-16 22:39:01

Argo CDKubernetes

2010-05-13 11:28:54

2015-08-13 13:48:50

數據中心

2014-05-28 15:23:55

Rave

2022-05-12 16:27:07

數字化運營可視化管理數字化

2021-07-12 06:36:08

釘釘Argo CDPrometheus

2020-07-27 09:59:25

Kafka可視化CMAK

2011-05-18 10:57:40

2009-08-31 13:32:12

2017-10-14 13:54:26

數據可視化數據信息可視化

2022-08-26 09:15:58

Python可視化plotly
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 99久久婷婷国产综合精品电影 | 不卡的av在线 | 男女在线网站 | 亚洲成人中文字幕 | 国产在线中文字幕 | 在线免费看毛片 | 中国人pornoxxx麻豆 | 婷婷激情综合 | 亚洲午夜精品一区二区三区他趣 | 狠狠亚洲 | 天天操天天干天天透 | 国产精品伦一区二区三级视频 | 亚洲黄色网址视频 | 五月槐花香 | 91久久久久久久久 | 精品国产乱码久久久久久闺蜜 | 精品国产伦一区二区三区观看方式 | 日韩av成人在线 | 国产精品九九九 | 天天碰日日操 | 日韩色在线 | 久久国产99 | 国产情侣激情 | 性高朝久久久久久久3小时 av一区二区三区四区 | 亚洲一区二区三区在线免费 | 日韩一区二区在线视频 | 成人在线视频免费观看 | 国产精品一区久久久 | 亚洲一区在线日韩在线深爱 | 精品久久久久久久久久久 | 夜夜艹天天干 | 欧美精品一区二区免费视频 | 免费国产一区 | 精品在线一区 | 亚洲精品区 | 欧美一区二区 | 99精品一区| 亚洲综合在线播放 | 夜夜夜夜草 | 亚洲精品久久久久久宅男 | 狠狠的干 |