乔克视界 乔克视界
首页
  • 运维
  • 开发
  • 监控
  • 安全
  • 随笔
  • Docker
  • Golang
  • Python
  • AIOps
  • DevOps
  • Kubernetes
  • 心情杂货
  • 读书笔记
  • 面试
  • 实用技巧
  • 博客搭建
友链
关于
收藏
  • 分类
  • 标签
  • 归档

乔克

云原生爱好者
首页
  • 运维
  • 开发
  • 监控
  • 安全
  • 随笔
  • Docker
  • Golang
  • Python
  • AIOps
  • DevOps
  • Kubernetes
  • 心情杂货
  • 读书笔记
  • 面试
  • 实用技巧
  • 博客搭建
友链
关于
收藏
  • 分类
  • 标签
  • 归档
  • Docker

  • Golang

  • AIOps

  • Python

  • DevOps

    • Tekton

    • ArgoWorkflow

      • 使用Jenkins和Argocd实现CI_CD
      • 使用ArgoCD进行持续部署
      • 使用argo-rollouts实现金丝雀发布
      • Jenkins+argocd+argo rollouts实现金丝雀发布
      • Argocd使用优化
        • 配置 webhook 加速 CD 过程
        • 配置监控
    • Gitlab

    • Ansible

  • Kubernetes

  • 专栏
  • DevOps
  • ArgoWorkflow
乔克
2025-07-19
目录

Argocd使用优化

# 配置 webhook 加速 CD 过程

Argo CD 每三分钟轮询一次 Git 存储库,以检测清单的变化。为了消除轮询带来的延迟,可以将 API 服务器配置为接收 Webhook 事件。Argo CD 支持来自 GitHub,GitLab,Bitbucket,Bitbucket Server 和 Gogs 的 Git Webhook 通知,更多点击官网 (opens new window)。

这里使用 Gitlab 作为仓库地址。

(1)在 argocd 中配置 webhook token

使用kubectl edit secret argocd-secret -n argocd命令进行配置:

apiVersion: v1
kind: Secret
metadata:
  name: argocd-secret
  namespace: argocd
type: Opaque
data:
---
stringData:
  # gitlab webhook secret
  webhook.gitlab.secret: coolops
1
2
3
4
5
6
7
8
9
10
11

配置完点击保存会自动生成一个 secret,如下:

# kubectl describe secret argocd-secret -n argocd
Name:         argocd-secret
Namespace:    argocd
Labels:       app.kubernetes.io/name=argocd-secret
              app.kubernetes.io/part-of=argocd
Annotations:
Type:         Opaque

Data
====
admin.passwordMtime:    20 bytes
server.secretkey:       44 bytes
tls.crt:                1237 bytes
tls.key:                1679 bytes
webhook.gitlab.secret:  7 bytes
admin.password:         60 bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

(2)在 gitlab 的代码仓库配置 webhook,如下:

886bbf34053cca87fac079047136954a MD5

由于集群内部证书是无效证书,所有要把 Enabled SSL 去掉,如下:

fde5c7fabe4d4343ed03e0410009ecf1 MD5

然后点击保存,点击测试,看是否链接成功。如果有如下提示则表示 webhook 配置没问题了。

21e6dd0d49959be1d10575468d5b43b2 MD5

现在可以进行修改 gitlab 仓库,观察是否一提交,argocd 那边就可以响应了。

# 配置监控

集群监控 Prometheus 是通过 Prometheus-operator 部署的,所以直接创建两个 serviceMonitor 即可,如下:

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: argocd-metrics
  namespace: monitoring
  labels:
    k8s-app: prometheus-operator
spec:
  selector:
    matchLabels:
      app.kubernetes.io/name: argocd-metrics
      app.kubernetes.io/component: metrics
  endpoints:
    - port: metrics
      interval: 30s
      scheme: http
  namespaceSelector:
    matchNames:
      - argocd
---
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: argocd-server-metrics
  namespace: monitoring
  labels:
    k8s-app: prometheus-operator
spec:
  selector:
    matchLabels:
      app.kubernetes.io/name: argocd-server-metrics
  endpoints:
    - port: metrics
      interval: 30s
      scheme: http
  namespaceSelector:
    matchNames:
      - argocd
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

然后可以在 Prometheus 的 UI 界面查看是否监控成功,如下即为成功。

39e2058dd46129f717bc6ba4e66fc35e MD5

然后在 Grafana 上导入以下json (opens new window)内容,即可在面板查看信息:

7d4eba07a4789adf5b290f75e1de7b9c MD5

上次更新: 2025/07/19, 11:33:23
Jenkins+argocd+argo rollouts实现金丝雀发布
搭建GitLab服务器

← Jenkins+argocd+argo rollouts实现金丝雀发布 搭建GitLab服务器→

最近更新
01
读《额尔古纳河右岸》有感
07-19
02
读《命运》有感
07-19
03
读《月亮与六便士》有感
07-19
更多文章>
Theme by Vdoing | Copyright © 2019-2025 乔克 | MIT License | 渝ICP备20002153号 |
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式