ArgoCD的禅意:当Git提交变成神圣的部署仪式
开悟时刻:从kubectl apply暴力美学到GitOps禅修
曾经的我:
-
在Jenkins流水线里疯狂点击"立即构建"如同抽卡
-
执行
kubectl set image时手抖得像帕金森早期 -
把部署文档写在微信收藏夹最终淹没在"收到"中
直到遇见ArgoCD ——
"原来代码即基础设施不是口号,而是双手合十后的'git push'静默仪式"
第一重禅境:同步策略与《物哀之美》
传统部署之痛:
# 旧时代的部署仪式(跳大神式运维)
kubectl apply -f deploy/ && \
kubectl rollout status deploy/app && \
kubectl exec -it pod/app -- curl -X POST http://localhost/reload
ArgoCD式顿悟:
# Application资源配置(极简主义宣言)
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: user-service
spec:
project: default
source:
repoURL: https://gitlab.com/zen-infra/user-service.git
path: k8s/overlays/prod
targetRevision: HEAD
destination:
server: https://kubernetes.default.svc
namespace: prod
syncPolicy:
automated:
selfHeal: true # 开启自愈结界
prune: true # 自动清理业障
syncOptions:
- CreateNamespace=true
现在只需凝视Git仓库的合并请求,集群便如镜中花水中月般同步幻化
第二重禅境:健康检查与《侘寂之道》
ArgoCD健康哲学三定律:
-
所有资源必须暴露健康状态接口(如
/healthz) -
失败时应如枯山水般保持优雅状态
-
恢复过程需符合预期美学标准
实战心法:
# 自定义健康检查(盆栽式监控)
apiVersion: argoproj.io/v1alpha1
kind: Application
spec:
ignoreDifferences:
- group: apps
kind: Deployment
jsonPointers:
- /spec/replicas # 放过HPA修改的副本数变化
healthChecks:
- useHealthCheckHook: true
template:
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
spec:
endpoints:
- interval: 30s
path: /metrics
当应用处于Degraded状态时,ArgoCD的报错信息比寺庙签文还玄妙:ComparisonError: invalid tree: git@gitlab.com:zen-infra/user-service.git: tree path not found
第三重禅境:应用集与《一即全,全即一》
单体应用迷思:
# 曾经的多环境管理脚本(精神污染源)
deploy.sh --env=prod --region=us-east1 --version=2.3.1
ArgoCD大统一场论:
# ApplicationSet全局法则
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: global-services
spec:
generators:
- list:
elements:
- env: dev
region: ap-east1
- env: prod
region: us-west2
template:
metadata:
name: '{{.env}}-{{.region}}-service'
spec:
source:
repoURL: https://gitlab.com/zen-infra/universal-config.git
path: 'manifests/{{.env}}/{{.region}}'
destination:
server: 'https://{{.region}}.k8s.cluster'
namespace: '{{.env}}'
此刻,东西半球的所有集群如佛珠般被Git仓库串联
运维禅房中的《十牛图》
当我们:
-
在ArgoCD界面观看资源同步如同观赏禅意动画
-
给Git提交信息添加[sync-wave]标签控制部署顺序
-
用Kustomize生成的环境变量比僧侣诵经还规律
或许这就是云原生时代的数字坐禅?
GitOps心经:
不执著于
kubectl的即时反馈
不恐惧于git revert的因果轮回
方能在CI/CD的无常中见真如
下期脑洞:
《ServiceMesh迷宫奇遇记:当Envoy代理开始玩密室逃脱》
本文来自博客园,作者:Wang、sir,转载请注明原文链接:https://www.cnblogs.com/wsir-x/p/18798266

浙公网安备 33010602011771号