基於Argo CD v2.0.4git
我的博客原文地址github
上一篇使用Tekton搭建了從源碼構建鏡像,並將鏡像推送至華爲雲SWR鏡像倉庫的工做流。 本篇使用ArgoCD搭建CD流程。咱們在Github倉庫中建立一個目錄demo-go
,裏面用來存放應用的yaml,deployment的yaml中image爲咱們上一篇上傳到SWR的鏡像地址。docker
# 安裝Argo CD
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
# 安裝Argo CD CLI
# 能夠去github下載安裝 https://github.com/argoproj/argo-cd/releases/latest
# 對外暴露Argo CD dashboard
# 本地瀏覽器訪問`loaclhost:8080`便可訪問Argo CD dashboard
kubectl port-forward svc/argocd-server -n argocd 8080:443
複製代碼
Argo CD默認會自動生成admin賬號及密碼,密碼存在Argo CD的namespace下的sercet argocd-initial-admin-secret
中,能夠用以下命令獲取密碼:json
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
複製代碼
訪問localhost:8080
輸入上述用戶名密碼登陸瀏覽器
argocd login localhost:8080
# 輸入上述用戶名密碼登陸
複製代碼
# 該命令能夠列出當前kubeconfig的全部集羣
[root@LAPTOP-65TL6H1S cicd]# kubectl config get-contexts -o name
docker-desktop
gke_secure-totality-316408_us-central1-c_my-first-cluster-1
# 選擇一個集羣的名稱提供給Argo CD, 例如docker-destop
argocd cluster add docker-desktop
複製代碼
上述命令會安裝一個sa(argocd-manager)到kube-system namespace下,並將sa綁定到admin-level ClusterRole,Argo CD用這個sa來部署和監控應用。bash
訪問localhost:8080
,點擊NEW APP
,按照流程建立markdown
ArgoCD能夠自動檢測github.com/Myrat92/sam… 倉庫下demo-go目錄內文件與集羣內應用是否有差別,設置sync-policy
爲auto
能夠在有差別的狀況下自動更新集羣內應用。app
# --sync-policy 同步策略,默認爲手動
# --repo 代碼倉地址
# --path 存放yaml的目錄
# --dest-server 目標集羣的地址
argocd app create demo-go --sync-policy auto --repo https://github.com/Myrat92/sample-go --path demo-go --dest-server https://kubernetes.default.svc --dest-namespace default
複製代碼
咱們能夠手動更新Github倉庫內應用yaml的image,查看集羣內應用是否會同步更新。oop
argocd app get guestbook
複製代碼
參考連接post