操作教程丨通過KubeOperator應用商店快速上手Argo CD

什麼是Argo CD?

Argo CD是一個爲Kubernetes而生的、遵循聲明式GitOps理念的持續部署工具,其優勢爲:

1、應用定義、配置和環境信息是聲明式的,並且可以進行版本控制;

2、應用部署和生命週期管理是全自動化的,是可審計的,清晰易懂;

3、Argo CD是一個獨立的部署工具,支持對多個環境、多個Kubernetes集羣上的應用進行統一部署和管理。

Argo CD源自哪裏?

Argo CD是由Intuit主導的開源項目,是Argo項目集合中的一個,Argo項目集合還包括Argo Workflow、Argo Rollout、Argo Event等項目。4月8日,CNCF技術監督委員會(Technical Oversight Committee,TOC)投票決定接受Argo作爲孵化級別的託管項目。

Intuit是AWS的重度客戶,其在CNCF雲原生計算基金會的Technical Oversight Committee佔有一席。Intuit原來的基礎設施是基於AWS EC2的,並採用Spinnaker來部署和管理應用。他們近年來開始轉向Kubernetes,並且開發了Argo CD替代 Spinnaker。Intuit使用Kubernetes及ArgoCD的一些數據,如圖1所示。

在這裏插入圖片描述

▲圖1 Intuit對Kubernetes管理規模統計圖

Argo CD在Github的開源工程中是非常活躍的。截止目前,共有183個Contributor和超過 2700個Star,並且在持續健康地增長。
在這裏插入圖片描述

▲圖2 Argo CD 在 Gihub 上的 Star 增強趨勢圖

Argo CD與其他CD工具(例如Spinnaker、Tekton、Jenkins X)等的具體對比請參考圖3。

在這裏插入圖片描述

▲圖3 CD工具能力對比

Argo CD在CI /CD流程中的位置和作用

在這裏插入圖片描述

▲圖4 藉助於Argo CD在Kubernetes上的CI/CD流程拓撲圖

如圖4所示,藉助Argo CD在Kubernetes集羣上落地CD,主要通過以下三個步驟來完成。

1、將應用的Git倉庫分爲Application Deployment file和Docker file兩個庫。

■ Docker file用於存放應用的核心代碼以及Docker build file,後續將會直接打包成Docker image;

■ Application Deployment file可以Kustomize、Helm、Ksconnet、Jsonnet 等多種Kubernetes包管理工具來定義;

■ 以Helm爲例,Chart中所使用到的Image由Docker file Code打包完成後提供。

2、使用Jenkins或Gitlab等CI工具進行自動化構建打包,並將Docker image push到Harbor鏡像倉庫。

3、使用Argo CD部署應用。

■ Argo CD可以獨立於集羣之外,並且支持管理多個Kubernetes集羣;

■ 在Argo CD上配置好應用部署的相關信息後,Argo CD便可以正常工作,Argo CD會自動和代碼倉庫Application deployment file的內容進行校驗,當代碼倉庫中應用屬性等信息發生變化時,Argo CD會自動同步更新Kubernetes集羣中的應用;

■ 應用啓動時,會從Harbor鏡像倉庫拉取Docker image。

在應用商店中快速上手 Argo CD

在KubeOperator容器平臺上部署Argo CD非常簡單,KubeOperator已經在Kubeapps Plus應用商店直接支持一鍵部署Argo CD,你只需要去Github下載離線包上傳即可使用。

接下來,通過以下幾個步驟,將會爲大家介紹Argo CD的具體安裝及在CI/CD中的使用方法。

1、在Kubeapps Plus應用商店找到Argo CD應用

在這裏插入圖片描述

▲ 圖5 在“Kubeapps Plus應用商店” 界面通過CD標籤找到Argo CD

2、部署Argo CD

在這裏插入圖片描述

▲ 圖6 在“應用詳情” 點擊“部署”按鈕進行應用部署

3、根據需要修改默認配置

在這裏插入圖片描述

▲ 圖7 在“應用編輯” 頁面點擊“提交”,進行應用創建

4、安裝 Argo CD,並等待服務就緒

在這裏插入圖片描述

▲ 圖8 在“我的應用界面” 頁面點擊“應用”,查看應用狀態及其他信息

5、通過NodePort的方式訪問Argo CD

在這裏插入圖片描述

▲ 圖9 通過NodePort在瀏覽器訪問Argo CD

在這裏插入圖片描述

▲ 圖10 Argo CD登錄成功後的界面

6、在Argo CD UI界面來創建應用

6.1 點擊“+ NEW APP”按鈕創建應用;

在這裏插入圖片描述

▲ 圖11 在Argo CD UI界面來創建應用

6.2 填寫應用名稱:guestbook;項目:default;同步策略:手動;

在這裏插入圖片描述

▲ 圖12 填寫應用的相關信息

6.3 配置來源。這裏配置的是Git ,代碼倉庫的URL配置爲 Github上的項目地址爲:https://github.com/argoproj/argocd-example-apps.git;Revision選擇:HEAD;項目路徑選擇:guestbook;

在這裏插入圖片描述

▲ 圖13 填寫配置信息

6.4 選擇應用部署的目標集羣:https://kubernetes.default.svc ,因爲此次的Argo CD部署在Kubernetes集羣當中,默認Argo CD已經幫我們添加好當前所在的Kubernetes集羣,直接使用即可。Namespace選擇:my-app。Namespcae可以在Kubernetes集羣上使用# kubectl create namespace my-app 命令來創建;

在這裏插入圖片描述

▲ 圖14 填寫集羣描述信息

6.5 填寫完成後,點擊 “CREATE” 按鈕進行創建;

在這裏插入圖片描述

▲ 圖15 正式創建應用

6.6 由於尚未部署應用程序,並且尚未創建Kubernetes資源,所以Status還是OutOfSync狀態,因此我們還需要點擊 “SYNC”按鈕進行同步(部署)。同時也可以安裝argocd客戶端,使用Argo CD CLI進行同步:
#argocd app sync guestbook

在這裏插入圖片描述

▲ 圖16 應用創建完成,處於“未同步”狀態

在這裏插入圖片描述

▲ 圖17 手動同步應用,開始部署應用

7、等待應用創建完成

在這裏插入圖片描述

▲ 圖18 應用同步後部署成功

在這裏插入圖片描述

▲ 圖19 點擊部署的應用查看詳情

8、在Kubernetes集羣中查看應用

在這裏插入圖片描述

▲ 圖20 在Kubernetes集羣中的Master節點查看應用的運行狀態

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章