基於Tekton和Argocd的CICD實現(2/4)

基於Argo CD v2.0.4git

我的博客原文地址github

使用argocd實現CD流程

上一篇使用Tekton搭建了從源碼構建鏡像,並將鏡像推送至華爲雲SWR鏡像倉庫的工做流。 本篇使用ArgoCD搭建CD流程。咱們在Github倉庫中建立一個目錄demo-go,裏面用來存放應用的yaml,deployment的yaml中image爲咱們上一篇上傳到SWR的鏡像地址。docker

安裝Argo CD

# 安裝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

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
複製代碼

使用Argo CD dashboard

訪問localhost:8080輸入上述用戶名密碼登陸瀏覽器

使用Argo CD CLI

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

建立應用

使用Argo CD dashboard

訪問localhost:8080,點擊NEW APP,按照流程建立markdown

使用Argo CD CLI

ArgoCD能夠自動檢測github.com/Myrat92/sam… 倉庫下demo-go目錄內文件與集羣內應用是否有差別,設置sync-policyauto能夠在有差別的狀況下自動更新集羣內應用。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

相關文章
相關標籤/搜索