日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
使用ArgoCD的UI界面可視化管理Flux應(yīng)用?

使用 Argo CD 的 UI 界面可視化管理 Flux 應(yīng)用?

作者:陽明 2023-10-08 07:59:25

云計算

云原生 Weave GitOps 改善了開發(fā)人員體驗,簡化了在 Kubernetes 上部署和管理云原生應(yīng)用程序的復(fù)雜性和認(rèn)知負(fù)擔(dān),使團(tuán)隊可以更快地開展工作,它是 Flux 的一個強(qiáng)大擴(kuò)展。

創(chuàng)新互聯(lián)公司主營牧野網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,重慶APP開發(fā)公司,牧野h5小程序定制開發(fā)搭建,牧野網(wǎng)站營銷推廣歡迎牧野等地區(qū)企業(yè)咨詢

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

weave gitops

Weave GitOps 改善了開發(fā)人員體驗,簡化了在 Kubernetes 上部署和管理云原生應(yīng)用程序的復(fù)雜性和認(rèn)知負(fù)擔(dān),使團(tuán)隊可以更快地開展工作,它是 Flux 的一個強(qiáng)大擴(kuò)展。

Weave GitOps 可以幫助應(yīng)用程序運(yùn)維人員輕松發(fā)現(xiàn)和解決問題 - 簡化和擴(kuò)展 GitOps 和持續(xù)交付的采用。UI 提供了引導(dǎo)式體驗,可幫助用戶輕松發(fā)現(xiàn) Flux 對象之間的關(guān)系并加深理解,同時提供對應(yīng)用程序部署的見解。

Weave GitOps 初了提供了一個開源的版本之外,還有一個企業(yè)版本,其 OSS 版本是一個簡單的開源開發(fā)者平臺,適合那些沒有 Kubernetes 專業(yè)知識但想要云原生應(yīng)用程序的人。它包括 UI 和許多其他功能,使團(tuán)隊超越簡單的 CI/CD 系統(tǒng)。體驗啟用 GitOps 并在集群中運(yùn)行應(yīng)用程序是多么容易。我們這里當(dāng)然是使用開源版本了。

Weave GitOps 提供了一個命令行界面,可幫助用戶創(chuàng)建和管理資源。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

當(dāng)然如果是 Mac 用戶可以使用 Homebrew 進(jìn)行一鍵安裝:

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

CLI 工具安裝完成后,接下來就可以來部署 Weave GitOps 了,我們將:

  • 使用 GitOps CLI 工具生成 HelmRelease 和 HelmRepository 對象。
  • 創(chuàng)建一些登錄憑據(jù)來訪問 Dashboard。
  • 將生成的 yaml 提交到我們的基礎(chǔ)設(shè)施代碼庫。
  • 觀察它們是否已同步到集群。

前面我們安裝 Flux 的基礎(chǔ)設(shè)施代碼倉庫為 http://gitlab.k8s.local/cnych/flux,現(xiàn)在我們 Clone 這個倉庫到本地:

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

然后運(yùn)行以下命令創(chuàng)建 HelmRepository 和 HelmRelease 來部署 Weave GitOps:

PASSWORD="gitops321"  # 設(shè)置登錄密碼
gitops create dashboard ww-gitops \
  --password=$PASSWORD \
  --export > ./clusters/my-cluster/weave-gitops-dashboard.yaml

該命令會存儲密碼的哈希值,這在演示和測試的時候相對安全,但我們強(qiáng)烈建議在生產(chǎn)系統(tǒng)中使用更安全的密鑰存儲方法(如 Flux 的 SOPS 集成)。

然后提交 weave-gitops-dashboard.yaml 并將其推送到 flux 基礎(chǔ)存儲庫中去:

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

然后隔一會兒可以去檢測下是否已經(jīng)部署成功了:

$ kubectl get pods -n flux-system

如果想要定制 Weave GitOps 的部署,可以通過配置 Helm Chart 的 Values 來實現(xiàn),可配置的參數(shù)可以參考文檔:https://docs.gitops.weave.works/docs/references/helm-reference/。

現(xiàn)在我們想要訪問 Weave GitOps 的 Web UI,可以通過 kubectl port-forward 命令來實現(xiàn):

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

然后我們就可以通過瀏覽器訪問 http://localhost:9001 來訪問 Weave GitOps 的 Web UI 了,輸入用戶名為 admin,密碼為前面配置的 PASSWORD 的值,即可登錄:

weave gitops

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

APPLICATIONS

讓我們來探索下 flux-system 這個基礎(chǔ)設(shè)施 Kustomization 對象,返回到應(yīng)用程序視圖,并點擊 flux-system 對象。

flux-system detail

可能需要一些時間來加載數(shù)據(jù)。一旦加載完成,應(yīng)該會得到一個類似上面截圖的結(jié)果。在這里,可以找到有關(guān)資源定義的關(guān)鍵信息。

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

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

源列表

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

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

Flamingo

Flamingo 是 Argo 的 Flux 子系統(tǒng)(FSA),F(xiàn)lamingo 的容器鏡像可以作為等效的 ArgoCD 版本的插件擴(kuò)展,與 Argo CD 一起可視化和管理 Flux 工作負(fù)載。

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

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

Loopback Reconciliation 通過使應(yīng)用程序的狀態(tài)與 Flux 對象中定義的所需狀態(tài)保持同步,有助于確?;?GitOps 的部署的可靠性和一致性。

how to work

要安裝 Flamingo 比較簡單,我們可以通過 Flux 的 Kustomization 對象來部署,創(chuàng)建如下所示的資源對象:

# 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

然后直接應(yīng)用該資源對象即可:

$ 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

上面的資源對象會創(chuàng)建一個 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

默認(rèn)情況下會有 2 個 FSA 應(yīng)用,每個應(yīng)用程序由 1 個 Flux 的 Kustomization 和 1 個 Flux 的 GitRepository 組成。

argocd app

如果你現(xiàn)有集群中已經(jīng)安裝了 Argo CD,那么我們可以使用下面的命令來升級現(xiàn)有的 Argo CD。如果已經(jīng)安裝了 Argo CD,可以使用來自 FSA 的鏡像替換現(xiàn)有安裝的鏡像。

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 -

如果想要將現(xiàn)有的 Flux 應(yīng)用轉(zhuǎn)換成 FSA 應(yīng)用,可以使用 flamingo 的 CLI 命令來實現(xiàn),所以首先需要安裝 flamingo 命令行工具,前往 Flamingo CLI Release 頁面下載對應(yīng)的版本即可,然后解壓后將二進(jìn)制文件移動到 /usr/local/bin 目錄下即可:

$ flamingo --version
flamingo version 0.3.1

CLI 工具安裝完成后,接下來我們就可以將現(xiàn)有的 Flux 應(yīng)用轉(zhuǎn)換成 FSA 應(yīng)用了,比如現(xiàn)在我們創(chuàng)建一個如下所示的 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

創(chuàng)建后我們可以使用下面的命令來生成一個 FSA 應(yīng)用:

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

創(chuàng)建完成后我們再去訪問 Argo CD 的 Web UI,可以看到已經(jīng)生成了一個 FSA 應(yīng)用:

argocd ui

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


網(wǎng)站題目:使用ArgoCD的UI界面可視化管理Flux應(yīng)用?
URL標(biāo)題:http://www.dlmjj.cn/article/ccohcgd.html