访次: 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 @ 2024-02-26 18:26  IT老登  阅读(427)  评论(0)    收藏  举报
访次: AmazingCounters.com 次