基于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

相关文章
相关标签/搜索