基于argocd和helm的云原生gitops-2
argocd vs gitops
- gitops负责对代码做ci,完成代码到镜像,进一步到chart/manifests的同步
- 然后argocd负责将仓库里的chart/manifests同步到集群
总体上,二者有先后顺序,各自负责不同的部分
私有仓库
- github创建pat:在账户setting里创建一个Fine-grained personal access token。
- 注意建token时除了给选仓库,还要勾选content权限,否则依然无法读取仓库。
- 在argocd中配置仓库权限,用户名配置github用户名,密码配置PAT即可。
ingress健康检查
-
ingress使用traefik作为controller时状态无法被argocd检测到:FAQ - Argo CD - Declarative GitOps CD for Kubernetes (argo-cd.readthedocs.io)
-
临时解决办法:argocd-cm这个configmap中加入如下配置
resource.customizations: | # group/resource networking.k8s.io/Ingress: health.lua: | hs = {} hs.status = "Healthy" return hs
replace
- 问题:比如deployment的selector不允许通过kubectl apply修改,需要强制修改
- 方案1:开启replace
- 方案2:手动删了再sync
prune/prune-last
- prune:删除不存在的资源
- prune-last:删除资源的顺序放到最后
参考
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。