argocd vs gitops

  1. gitops负责对代码做ci,完成代码到镜像,进一步到chart/manifests的同步
  2. 然后argocd负责将仓库里的chart/manifests同步到集群

总体上,二者有先后顺序,各自负责不同的部分

私有仓库

  1. github创建pat:在账户setting里创建一个Fine-grained personal access token。
  2. 注意建token时除了给选仓库,还要勾选content权限,否则依然无法读取仓库。
  3. 在argocd中配置仓库权限,用户名配置github用户名,密码配置PAT即可。

ingress健康检查

  1. ingress使用traefik作为controller时状态无法被argocd检测到:FAQ - Argo CD - Declarative GitOps CD for Kubernetes (argo-cd.readthedocs.io)

  2. 临时解决办法:argocd-cm这个configmap中加入如下配置

     resource.customizations: |
       # group/resource
       networking.k8s.io/Ingress:
           health.lua: |
             hs = {}
             hs.status = "Healthy"
             return hs

replace

  1. 问题:比如deployment的selector不允许通过kubectl apply修改,需要强制修改
  2. 方案1:开启replace
  3. 方案2:手动删了再sync

prune/prune-last

  1. prune:删除不存在的资源
  2. prune-last:删除资源的顺序放到最后

参考

文章目录