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

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

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

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

weave gitops

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

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

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

Weave GitOps 提供了一個(gè)命令行界面,可幫助用戶創(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 這個(gè)倉庫到本地:

$ 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

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

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

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

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

$ kubectl get pods -n flux-system

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

現(xiàn)在我們想要訪問 Weave GitOps 的 Web UI,可以通過 kubectl port-forward 命令來實(shí)現(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 這個(gè)基礎(chǔ)設(shè)施 Kustomization 對象,返回到應(yīng)用程序視圖,并點(diǎn)擊 flux-system 對象。

flux-system detail

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

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

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

源列表

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

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

Flamingo

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

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

  • 在 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)項(xiàng)。為此,環(huán)回調(diào)諧機(jī)制繞過了 Argo CD 中的本機(jī)協(xié)調(diào)過程,而是依賴于 Flux 調(diào)諧。然后它使用 Flux 對象的結(jié)果向 Argo CD 報(bào)告。

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

上面的資源對象會(huì)創(chuàng)建一個(gè) argocd 的命名空間,并會(huì)部署 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)情況下會(huì)有 2 個(gè) FSA 應(yīng)用,每個(gè)應(yīng)用程序由 1 個(gè) Flux 的 Kustomization 和 1 個(gè) 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 命令來實(shí)現(xiàn),所以首先需要安裝 flamingo 命令行工具,前往 Flamingo CLI Release 頁面下載對應(yīng)的版本即可,然后解壓后將二進(jìn)制文件移動(dòng)到 /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)建一個(gè)如下所示的 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)建后我們可以使用下面的命令來生成一個(gè) FSA 應(yīng)用:

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

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

argocd ui

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

責(zé)任編輯:姜華 來源: k8s技術(shù)圈
相關(guān)推薦

2021-12-08 12:20:55

KubernetesGitOpsLinux

2022-04-15 11:32:20

IDE工具鴻蒙操作系統(tǒng)

2020-03-11 14:39:26

數(shù)據(jù)可視化地圖可視化地理信息

2015-08-20 10:00:45

可視化

2024-05-22 08:03:15

2018-10-22 15:34:31

Spring Boo監(jiān)控視化

2020-03-01 14:01:22

Echarts數(shù)據(jù)可視化圖表

2024-09-11 09:25:00

2023-09-27 08:24:49

2022-08-16 22:39:01

Argo CDKubernetes

2010-05-13 11:28:54

2015-08-13 13:48:50

數(shù)據(jù)中心

2014-05-28 15:23:55

Rave

2022-05-12 16:27:07

數(shù)字化運(yùn)營可視化管理數(shù)字化

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

數(shù)據(jù)可視化數(shù)據(jù)信息可視化

2022-08-26 09:15:58

Python可視化plotly
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 美女一区二区在线观看 | 欧美性久久 | 国产成人精品久久二区二区91 | 国产一区二区三区视频 | 欧美国产精品久久久 | 日本在线中文 | 亚洲精品视频播放 | av电影手机在线看 | 黄色av一区 | 亚洲中午字幕 | 欧美日韩国产在线观看 | 午夜久久久 | 久久国产综合 | 视频在线观看一区 | 久久大陆 | 国产一区二区三区四区三区四 | 久久av影院| 欧美二区三区 | 99精品一区二区三区 | 伊人色综合久久久天天蜜桃 | 一级毛片视频 | 中文字幕在线国产 | 国产乱码精品1区2区3区 | 中国91av| 人人干人人干人人干 | 国产在线看片 | 一区二区在线 | 伦理一区二区 | 日韩欧美一级精品久久 | 日韩精品中文字幕在线 | 婷婷免费在线 | 久久夜色精品国产 | 999免费网站 | 国产精品久久久久久久久久免费看 | 成人国产精品久久 | 午夜理伦三级理论三级在线观看 | 亚洲国产精品日本 | 亚洲精品国产第一综合99久久 | 亚洲视频免费观看 | 亚洲自拍一区在线观看 | 日韩视频一区二区在线 |