自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

當(dāng) Argo CD 遇上 Flux CD,誰才是 Kubernetes 上 GitOps 的真王者?

系統(tǒng) Linux
在我們開始實現(xiàn)Gitops之前,讓我為那些不熟悉 GitOps 及其工具的人提供一些背景。

[[439331]]

在我們開始實現(xiàn)Gitops之前,讓我為那些不熟悉 GitOps 及其工具的人提供一些背景。

GitOps 背后的基本思想是擁有一個版本控制的代碼,就像在 Git 存儲庫中一樣,它包含我們在生產(chǎn)中期望的基礎(chǔ)設(shè)施的聲明性定義,以及一個確保我們在那里擁有該狀態(tài)的自動化過程。

這意味著每個pull請求都可以為您的用戶發(fā)布一個新特性,任何斷點都可以通過簡單的git revert來回滾。因此,開發(fā)人員只需要訪問代碼,而不需要訪問實際環(huán)境。請注意,這并不意味著我們在限制開發(fā)人員;這只會讓開發(fā)人員更接近環(huán)境,從而使他們能夠使用。

Argo CD 和 Flux CD 都是著名的工具,可以將您的實時環(huán)境與 Git 存儲庫中的所需狀態(tài)相匹配。而這個博客內(nèi)容將幫助您了解這些工具的核心功能,然后進行公平的比較,以便您做出正確的選擇。

ArgoCD

Argo CD是Kubernetes的聲明式GitOps持續(xù)交付工具。它具有可伸縮性、安全性(以及SSO集成)、多集群多租戶支持和可擴展性。

安裝

Argo CD的安裝非常簡單,可以在入門頁面上看到。

https://argo-cd.readthedocs.io/en/stable/getting_started/

要訪問UI,使用這兩種方法暴露Argo CD服務(wù)

如果你計劃只使用核心的argocd,你可以用argocd CLI來控制它。要安裝命令行,只需運行命令行

核心概念

在Argo CD中,所有相關(guān)資源都被分組并部署為一個名為Application的單元。每個申請都是Project的一部分,Project是Argo CD的租賃單位。每個租戶可以被限制在一個名稱空間和集群中。

您的應(yīng)用程序鏈接到一個版本控制,比如Git,它決定應(yīng)用程序的狀態(tài)。一旦部署,資源就處于Live狀態(tài)。每當(dāng)在Git中更改代碼時,就會創(chuàng)建一個新的Desired狀態(tài),可以通過儀表板上的快速刷新查看該狀態(tài)。為了使您的活動狀態(tài)與期望的狀態(tài)相匹配,您可以同步它們。

它還允許您監(jiān)視應(yīng)用程序的運行狀況,并在出現(xiàn)故障時,允許使用歷史記錄和回滾功能回滾到舊版本。

預(yù)排

現(xiàn)在到儀表板上… 儀表盤看起來非?,F(xiàn)代,非常直觀。要開始一個新項目,只需單擊new App按鈕并填寫以下細節(jié)。

在源代碼部分,提供Git repo的URL和文件夾的路徑(這是從repo派生的響應(yīng)式下拉列表)。然后向下滾動選擇集群,可以是你已經(jīng)注冊的任何一個集群。

已經(jīng)注冊: https://argo-cd.readthedocs.io/en/stable/getting_started/#5-register-a-cluster-to-deploy-apps-to-optional

創(chuàng)建完成后,你會在主儀表板上看到一個以你的應(yīng)用名稱命名的卡片。點擊它到達這個視圖。對于本演示,使用了kustomize-guestbook示例應(yīng)用程序。

kustomize-guestbook: https://github.com/argoproj/argocd-example-apps/tree/master/kustomize-guestbook

live狀態(tài)不等于想要的狀態(tài)(因為我們還沒有部署任何東西),因此它顯示OutOfSync狀態(tài)?,F(xiàn)在單擊Sync按鈕進行部署

該視圖顯示了部署中復(fù)制集中的pod的粒度。在這里,您可以單擊任何元素來查看它們的事件、日志和狀態(tài)。

現(xiàn)在,每當(dāng)Git中的代碼發(fā)生變化時,您都可以單擊Refresh以查看新的Sync狀態(tài)。如果不同步,比如需要改變資源,你可以點擊App Diff查看這些差異,然后點擊sync部署它們。

Flux CD

Flux最初由Weaveworks開發(fā),現(xiàn)在在CNCF下孵化,是一套針對Kubernetes的持續(xù)和進步的交付解決方案,是開放和可擴展的。

安裝

Flux有一個cli優(yōu)先的方法,UI只是一個附加組件。要安裝Flux CLI,請使用其中之一。

安裝Flux CLI: https://fluxcd.io/docs/installation/ 

  1. # HOMEBREW  
  2. brew install fluxcd/tap/flux  
  3. # GOFISH  
  4. gofish install flux  
  5. # BASH  
  6. curl -s https://fluxcd.io/install.sh | sudo bash  
  7. # YAY  
  8. yay -S flux-bin  
  9. # NIX OS  
  10. nix-env -i fluxcd  
  11. # CHOCOLATEY  
  12. choco install flux 

安裝CLI后,使用以下命令在Kubernetes集群上安裝Flux 。

  1. # For generic git server# For generic git server  
  2. flux bootstrap git \  
  3.   --url=ssh://git@<host>/<org>/<repository> \  
  4.   --branch=<my-branch> \  
  5.   --path=clusters/my-cluster  
  6. # For GitHub or GitHub enterprise  
  7. flux bootstrap github \  
  8.   --owner=my-github-username \  
  9.   --repository=my-repository \  
  10.   --path=clusters/my-cluster \  
  11.   --personal 
  12. flux bootstrap git \  
  13.   --url=ssh://git@<host>/<org>/<repository> \  
  14.   --branch=<my-branch> \  
  15.   --path=clusters/my-cluster  
  16. # For GitHub or GitHub enterprise  
  17. flux bootstrap github \  
  18.   --owner=my-github-username \  
  19.   --repository=my-repository \  
  20.   --path=clusters/my-cluster \  
  21.   --personal 

核心概念

Flux是一種更直接的GitOps方法,更少的人為干擾。這個過程從Bootstrapping開始。這將在集群上安裝flux組件,該組件將監(jiān)視Source上的一個目錄。這個源上的任何更改都將通過Reconciliation過程更新到集群上。它可以與Helm釋放,Kustomization或保存在桶中的文物一起使用。

預(yù)排

讓我們從一些預(yù)先配置開始… 導(dǎo)出將被flux CLI用于與你的repo交互的Git登錄細節(jié)。

接下來,檢查集群是否兼容。您應(yīng)該看到這樣的輸出。

現(xiàn)在使用git配置將flux安裝到你的集群中。

這將在你的GitHub帳戶中創(chuàng)建一個test-repo,并在repo中添加Flux組件清單。它還將附帶組件部署到集群,并將它們配置跟蹤集群中的./clusters/my-cluster/目錄。如果你克隆這個和檢查內(nèi)容,你會發(fā)現(xiàn)類似的東西。

這樣,您的設(shè)置就準(zhǔn)備好了。您可以在test-repo/clusters/my-cluster/中創(chuàng)建任何清單,flux將輪詢它并部署更新。

你也可以試試它實驗性的web UI。

https://github.com/fluxcd/webui

那我該選哪個呢?

雖然它們都遵循相同的路徑,但這些工具之間存在差異。讓我們看看,然后我會讓你決定什么最適合你。

代碼協(xié)作中的靈活性

Argo允許將多個代碼庫連接到集群,而Flux每個operator只能連接一個代碼庫。如果多個團隊在同一個應(yīng)用程序上工作,并提供不同的清單,這將有利于Argo。

Manifest工具支持

Argo和Flux都與Helm和Kustomization合作。Argo還可以使用ksonnet和jsonnet。此外,這兩種工具都支持作為配置管理插件配置的自定義配置管理工具。

多租戶

直到幾個月前,這可能還在Argo的籃子里,然而,F(xiàn)lux v2對多租戶和服務(wù)器端協(xié)調(diào)的支持現(xiàn)在甚至在這個領(lǐng)域。

Flux多租戶:https://github.com/fluxcd/flux2-multi-tenancy

服務(wù)器端協(xié)調(diào)的支持: https://fluxcd.io/blog/2021/09/server-side-reconciliation-is-coming/

Web UI

Argo提供了一個強大的UI,可以幫助可視化不同對象之間的關(guān)系,并更好地監(jiān)控它們,而Flux則完全依賴于CLI。你可以添加web UI到Flux,但它仍然是實驗性的。

web UI: https://github.com/fluxcd/webui

Flux: https://github.com/fluxcd/webui

身份驗證

Argo可以與SSO集成,并且內(nèi)置了對RBAC的額外支持。Flux只與服務(wù)帳戶的RBAC一起工作。

自動化容器更新

Flux在自動化容器更新方面占了上風(fēng),而另一方面,在Argo中需要手動提交和同步。

管理

另一點是Flux的簡單設(shè)計。Flux可以自動部署應(yīng)用程序,幾乎無需維護。Argo需要你來部署但我個人更喜歡在這里控制。

最后的判決

Argo和Flux都是非常棒的工具,為它們的用例提供了很好的服務(wù)。由于Argo的可擴展控制和多功能性,我總是傾向于使用Argo。然而,F(xiàn)lux v2可能很快就會改變這一點! 

 

責(zé)任編輯:龐桂玉 來源: 奇妙的Linux世界
相關(guān)推薦

2022-08-16 22:39:01

Argo CDKubernetes

2021-07-09 06:40:59

TektonArgo CD GitOps

2021-07-04 07:24:48

GitOps 工具 Argo CD

2024-05-22 08:03:15

2023-09-27 08:24:49

2024-09-11 09:25:00

2022-02-17 11:52:05

?Argo CD漏洞Kubernetes

2022-08-18 17:07:00

sopsGitOps

2023-10-08 07:59:25

2024-08-07 10:14:35

2021-06-24 07:20:21

Linked GitOps Argo CD

2023-03-14 16:35:52

2023-05-04 16:03:50

KubernetesCI/CD集成

2021-09-07 08:23:45

GitOpsCICD

2023-05-15 12:33:47

JavaPython編程語言

2021-07-12 06:36:08

釘釘Argo CDPrometheus

2021-02-10 08:24:47

微服務(wù)CICD

2011-07-12 09:28:53

Windows 8

2022-05-31 09:57:36

編程語言Go語言Python

2021-05-18 08:00:00

Kubernetes容器進程
點贊
收藏

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