访次: AmazingCounters.com 次

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了。由于能力受限,我觉得这个流程还不是完全的自动,相信结合更好的配置信息和别的工具会让这个流程更加自动化的。

posted @   IT老登  阅读(275)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
历史上的今天:
2019-02-26 Haproxy_haproxy.cfg
访次: AmazingCounters.com 次
点击右上角即可分享
微信分享提示