基于tekton和argocd的CICD实现(2/4) 2021-07-27 CICD 暂无评论 2241 次阅读 > 基于[Argo CD v2.0.4](https://github.com/argoproj/argo-cd/releases/tag/v2.0.4) # 使用argocd实现CD流程 [上一篇](https://myrat.top/archives/22/)使用Tekton搭建了从源码构建镜像,并将镜像推送至华为云SWR镜像仓库的工作流。 本篇使用ArgoCD搭建CD流程。我们在[Github仓库](https://github.com/Myrat92/sample-go)中创建一个目录`demo-go`,里面用来存放应用的yaml,deployment的yaml中image为我们上一篇上传到SWR的镜像地址。 ## 安装Argo CD ```bash # 安装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`中,可以用如下命令获取密码: ```bash kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d ``` ### 使用Argo CD dashboard 访问`localhost:8080`输入上述用户名密码登录 ### 使用Argo CD CLI ```bash argocd login localhost:8080 # 输入上述用户名密码登录 ``` ## 注册集群来部署应用 ```bash # 该命令可以列出当前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可以自动检测https://github.com/Myrat92/sample-go 仓库下demo-go目录内文件与集群内应用是否有差异,设置`sync-policy`为`auto`可以在有差异的情况下自动更新集群内应用。 ```bash # --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,查看集群内应用是否会同步更新。 ## 查看状态 ```bash argocd app get guestbook ``` 参考链接 - https://argoproj.github.io/argo-cd/getting_started/ 打赏: 微信, 支付宝 标签: CICD 本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。本站myrat.top所有文章均为原创,转载请注明出处。