Z.S.K.'s Records

argoCD学习(argocd踩坑记)

argocd配合GitOps,可以实现对kubernetes多集群的应用版本管理,目前已用于我负责的业务环境中实现统一发布平台.

在这里记录下使用argocd踩过的坑, 不定期更新

UI上出现了不属于某app的资源

原因: 由于argo controller是根据资源中的annotations里的key(argocd.argoproj.io/instance)来判定这个资源是不是属于某个app,在日常使用的过程,由于团队中使用的是rancher做为容器管理平台,rancher上提供了非常便利的对资源的clone手段,就会产生clone后的资源也会带上相同的annotations,但是在原app下的manifest并不包含这个资源,因此在app下就会出现这个资源且这个资源会被标注为require pruning,那么在每次sync后,这个clone后的资源就会被删除

解决: 在clone时将annotations删除掉即可.

参考: https://github.com/argoproj/argo-cd/issues/5792

使用用户密码登录时提示

1
HTTP response body: {"error":"no session information","code":16,"message":"no session information"}

原因: argocd使用密码认证时会使用密码信息调用/api/session接口生成token信息,然后使用token转换成session, 出现这个错误是由client端没有做这个转换,因此在服务端找不到对应的session信息

添加集群时提示Unauthenticated desc = the server has asked for the client to provide credentials

原因及解决方案: https://gist.github.com/janeczku/b16154194f7f03f772645303af8e9f80

kustomize build out of index

原因: 这个是新版kustomize(v4.0.1)时使用了kyaml的版本的bug, 原因在于kustomizationl.yml中存在非法字符

解决: 回退kustomize为v3.6.1

forbidden: User “system:anonymouns” cantnot get path

解决: 重新使用命令加一下集群解决

1
rgocd cluster add my-cluster --server 'xxxx' --upsert

login时提示received the unexpected content-type

执行login 登录命令时提示:

1
argocd login argocd.local:4433

出现以下错误

原因:

参考: https://github.com/argoproj/argo-cd/issues/1415

解决:

1
argocd login argocd.local:4433 --grpc-web

如果添加集群的时候提示以下错误,则需要先使用上面的命令进行登录,登录成功后再进行集群的添加操作.

创建token时提示以下错误 not have apikey capability

1
Unable to generate new token: account 'admin' does not have apiKey capability

原因: argocd的用户也是通过角色来进行划分的,创建token的用户需要具有 apiKey的权限,这个可以从argocd部署的configmap中查看使用的用户是否具有什么权限.

回滚时提示以下错误revision must be resolved

1
Unable to load data: revision HEAD must be resolved

原因: 如果使用argocd命令行的方式同步应用,会导致revision没有commit值,如上图,而回滚时需要revision,因此造成上面的报错.

未完待续

参考文章:

转载请注明原作者: 周淑科(https://izsk.me)

 wechat
Scan Me To Read on Phone
I know you won't do this,but what if you did?