对于 Argi CD 开发人员而言,超时是最棘手的问题之一。如果在创建应用程序时遇到此问题,可以考虑以下几点来解决。
- 调整 Argo CD 的配置项
Argo CD 默认的创建应用程序的 timeout 时间为 10 分钟。如果应用程序的镜像或资源文件较大,创建时间可能会很长。若超时,可以尝试通过更改配置项来延长 timeout 的时间。配置文件位置在 Argo CD 安装目录下的
argocd-cm
configMap 中, 可以手动调整它下面的参数值,即:
data:
application.create.timeout: "600s"
上述示例将超时时间从默认的 10 分钟增加到 600 秒。
- 提高 kubernetes api server 的 timeout 时间
在调用 Kubernetes API 时, Argo CD 也有一个默认 timeout 时间。如果 kubernetes api 服务器响应时间较长,则 Argo CD 创建应用程序时产生超时错误。一种解决方法是增加 Kubernetes API Server 的 timeout 时间。需要在 Kubernetes cluster 中进行配置。
例如,在 kubeadm 节点上,在启动 API Server 的时候可以通过指定 --request-timeout
参数来设定超时时间,如下所示:
sudo vi /etc/kubernetes/manifests/kube-apiserver.yaml
然后在 spec.containers.command
列表中添加以下行:
- --request-timeout=30s
- 减小应用程序的镜像或资源文件大小
如果前两种方法都无法解决问题,则需要考虑减小应用程序的镜像或资源文件的大小。可以尝试使用更小的 Docker 镜像或减少应用程序的依赖项。此举可显著减少 Argo CD 创建应用程序的时间