章工运维 章工运维
首页
  • linux
  • windows
  • 中间件
  • 监控
  • 网络
  • 存储
  • 安全
  • 防火墙
  • 数据库
  • 系统
  • docker
  • 运维工具
  • other
  • elk
  • K8S
  • ansible
  • Jenkins
  • GitLabCI_CD
  • 随笔
  • 面试
  • 工具
  • 收藏夹
  • Shell
  • python
  • golang
友链
  • 索引

    • 分类
    • 标签
    • 归档
    • 首页 (opens new window)
    • 关于我 (opens new window)
    • 图床 (opens new window)
    • 评论 (opens new window)
    • 导航栏 (opens new window)
周刊
GitHub (opens new window)

章工运维

业精于勤,荒于嬉
首页
  • linux
  • windows
  • 中间件
  • 监控
  • 网络
  • 存储
  • 安全
  • 防火墙
  • 数据库
  • 系统
  • docker
  • 运维工具
  • other
  • elk
  • K8S
  • ansible
  • Jenkins
  • GitLabCI_CD
  • 随笔
  • 面试
  • 工具
  • 收藏夹
  • Shell
  • python
  • golang
友链
  • 索引

    • 分类
    • 标签
    • 归档
    • 首页 (opens new window)
    • 关于我 (opens new window)
    • 图床 (opens new window)
    • 评论 (opens new window)
    • 导航栏 (opens new window)
周刊
GitHub (opens new window)
  • linux

  • windows

  • 中间件

  • 网络

  • 安全

  • 存储

  • 防火墙

  • 数据库

  • 系统

    • vmware

    • ftp

    • nexus

    • harbor

    • confluence&jira

    • loki

    • sonarqube

    • svn

    • other

    • openldap

    • influxdb

    • wordpress

    • kvm

    • argocd

      • argocd部署
      • argocd+gitlab应用自动发布
        • 添加仓库地址
        • 创建应用
        • 验证应用部署状态
        • 版本更新
        • 版本回退
    • jfrog

    • nextcloud

    • RustDesk

    • mail

    • ghost

  • docker

  • other

  • 监控

  • 运维
  • 系统
  • argocd
章工运维
2024-03-13
目录

argocd+gitlab应用自动发布

# gitlab仓库配置

推荐gitlab创建空仓库后,拉取到本地编辑好以后再提交,不要直接编辑gitlab的yaml文件,因为gitlab在线编辑时,换行与tab空格在argocd上可能存在识别失败,不是标准的yaml文件,无法创建应用。
创建一个最简单的仓库,仅包含应用的yaml文件,文件内容如下

[root@k8s-master test-git]# tree test/
test/
├── manifests
│   └── test.yaml
└── README.md

1 directory, 2 files
[root@k8s-master test-git]# cat test/manifests/test.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  name: myapp
  namespace: default
spec:
  selector:
    matchLabels:
      app: myapp
  template:
    metadata:
      labels:
        app: myapp
    spec:
      containers:
      - name: myapp
        image: ikubernetes/myapp:v1
        resources:
          limits:
            memory: "128Mi"
            cpu: "500m"
        ports:
        - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: myapp
  namespace: default
spec:
  type: ClusterIP
  selector:
    app: myapp
  ports:
  - port: 80
    targetPort: 80
---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: myapp
  namespace: default
spec:
  entryPoints:
  - web
  routes:
  - match: Host(`myapp.test.com`)
    kind: Rule
    services:
      - name: myapp 
        port: 80  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59

gitlab仓库内容如下:

2eb241a66555b688.jpg

# argocd配置

# 添加仓库地址

添加仓库地址,Settings → Repositories,点击 Connect Repo using HTTPS 按钮:

8ce7541c48d7260d.jpg

填写以下信息

6197a9d75a2dff83.jpg

验证通过后显示如下,点击创建应用

28f827d9d809275a.jpg

# 创建应用

填写以下内容

9106d5966f1f6507.jpg

5a5b2c31cc989868.jpg

创建完后如下所示:

a36dec337f0a931b.jpg

# 访问验证

# 验证应用部署状态

查看k8s创建的资源信息,发现已经成功创建了对应的资源

[root@k8s-master test-git]# kubectl get pod 
NAME                                               READY   STATUS    RESTARTS         AGE
myapp-68c8648d6d-54brv                             1/1     Running   0                62s
[root@k8s-master test-git]# kubectl get svc
NAME         TYPE           CLUSTER-IP      EXTERNAL-IP      PORT(S)    AGE
myapp        ClusterIP      10.97.189.71    <none>           80/TCP     70s
[root@k8s-master test-git]# kubectl get ingressroute
NAME     AGE
myapp    78s
1
2
3
4
5
6
7
8
9

访问web页面验证

4df641bf42ca7527.jpg

# 版本更新

接下来模拟配置变更,将镜像版本从v1改为v2

cf18eba0acb5a576.jpg

查看argocd信息,发现已经自动同步了yaml文件,并且正在进行发布

2548c800bee72a15.jpg

访问web页面状态,发现已经完成了发布工作。

08504735e1d74486.jpg

此时整个应用关联关系如下

6fe956b320167775.jpg

# 版本回退

点击history and rollback即可看到整个应用的所有发布记录,并且可以选择指定版本进行回退操作。

a28064654ad1ddaa.jpg

再次访问发现已经回退到v1版本

84b07ff0130b4bfc.jpg


原文链接 (opens new window)

微信 支付宝
上次更新: 2024/03/14, 08:51:14

← argocd部署 jfrog安装和破解→

最近更新
01
shell脚本模块集合
05-13
02
生活小技巧(认知版)
04-29
03
生活小技巧(防骗版)
04-29
更多文章>
Theme by Vdoing | Copyright © 2019-2025 | 点击查看十年之约 | 鄂ICP备2024072800号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式