阅读 487

基于Tekton和Argocd的CICD实现(2/4)

基于Argo CD v2.0.4

个人博客原文地址

使用argocd实现CD流程

上一篇使用Tekton搭建了从源码构建镜像,并将镜像推送至华为云SWR镜像仓库的工作流。 本篇使用ArgoCD搭建CD流程。我们在Github仓库中创建一个目录demo-go,里面用来存放应用的yaml,deployment的yaml中image为我们上一篇上传到SWR的镜像地址。

安装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中,可以用如下命令获取密码:

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来部署和监控应用。

创建应用

使用Argo CD dashboard

访问localhost:8080,点击NEW APP,按照流程创建

使用Argo CD CLI

ArgoCD可以自动检测github.com/Myrat92/sam… 仓库下demo-go目录内文件与集群内应用是否有差异,设置sync-policyauto可以在有差异的情况下自动更新集群内应用。

# --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,查看集群内应用是否会同步更新。

查看状态

argocd app get guestbook
复制代码

参考链接

文章分类
后端
文章标签