Jenkins+Argocd+Kubernetes+Gitlab+Harbor搭建CI/CD流程(七)之持续部署
前面我们完成了持续集成,利用jenkins将构建好的镜像上传到了harbor仓库中,接下来我们需要利用argocd实现持续部署,本文只写了argocd的简单用法,至于它是什么,原理是什么,怎么玩的更6,这些都得你自己去别的文章或视频里了解。通俗易懂地来说,我们就是先将deploy、service、ingress等kubernetes资源配置文件上传到gitlab中,然后在argocd中创建应用时,填上存放这些yaml文件的gitlab地址,argocd就会自动根据这些kubernetes资源配置文件在kubernetes集群中创建对应的资源了
一、上传yaml文件
#vim nginx-deployment.yaml #添加以下内容: apiVersion: apps/v1 kind: Deployment metadata: name: nginx spec: replicas: 1 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - image: 101.43.196.155:30002/cicd/nginx:v1 name: nginx ports: - containerPort: 80
nginx-service.yaml
apiVersion: v1 kind: Service metadata: name: nginx spec: ports: - port: 80 targetPort: 80 nodePort: 30001 type: NodePort selector: app: nginx
git add nginx-deployment.yaml git add nginx-service.yaml git commit -m "nginx" git push origin master
然后我们就可以在gitlab中看到刚刚上传的两个yaml文件了
二、 argocd安装部署
cd ~ wget https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml kubectl apply -n argocd -f install.yaml kubectl create namespace argocd
由于镜像的问题,部署argocd的过程还是需要等待挺久的,我第一次部署等了差不多30分钟,后面几次部署时快时慢,下图就是部署好的了情况
将argocd的服务改成nodeport类型
kubectl patch svc argocd-server -n argocd -p '{"spec": {"type": "NodePort"}}'
获取初始密码
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
查看argocd的web界面的端口
kubectl get service -n argocd
在浏览器中输入部署argocd服务器的IP+argocd端口访问argocdweb界面
初始账号为admin,初始密码就是刚刚获取的初始密码
三、在argocd的web界面上创建应用
在kubernetes集群中创建新的命名空间demo
kubectl create ns demo
浏览器输入kubernetes集群的IP地址+端口号30001,即可访问到我们的nginx应用了,这里输入x.xx.xx.xx:30001,至于为什么端口号是30001,那是因为之前在nginx-service.yaml文件中设置好的
当需要更换版本的时候,修改yaml文件的镜像配置,重新上传到gitlab上,然后在argocd上点击更新一下就ok了。由于能力受限,我觉得这个流程还不是完全的自动,相信结合更好的配置信息和别的工具会让这个流程更加自动化的。
本文来自博客园,作者:IT老登,转载请注明原文链接:https://www.cnblogs.com/nb-blog/p/18034931
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2019-02-26 Haproxy_haproxy.cfg