在 Kubernetes 的 Argo CD 中添加代理(Proxy)设置,你可以从多个层面进行操作,下面分别介绍不同组件设置代理的方法。
1. Argo CD Server 代理设置
Argo CD Server 负责提供 Web UI 和 API 服务,要为其设置代理,可以通过修改 Argo CD Server 的部署配置来实现。
步骤:
- 编辑 Argo CD Server 部署
kubectl edit deployment argocd-server -n argocd
- 添加代理环境变量
在spec.template.spec.containers
下的argocd-server
容器中添加代理相关的环境变量,示例如下:
spec:
template:
spec:
containers:
- name: argocd-server
env:
- name: HTTP_PROXY
value: http://your-proxy-server:port
- name: HTTPS_PROXY
value: http://your-proxy-server:port
- name: NO_PROXY
value: localhost,127.0.0.1,.svc,.cluster.local
这里 HTTP_PROXY
和 HTTPS_PROXY
分别指定了 HTTP 和 HTTPS 请求的代理服务器地址,NO_PROXY
指定了不需要使用代理的地址列表。
- 保存并退出
编辑完成后,保存并退出编辑器,Kubernetes 会自动更新 Argo CD Server 部署。
2. Argo CD Repo Server 代理设置
Argo CD Repo Server 负责与 Git 仓库交互,获取应用的配置文件,同样可以通过修改其部署配置来设置代理。
步骤:
- 编辑 Argo CD Repo Server 部署
kubectl edit deployment argocd-repo-server -n argocd
- 添加代理环境变量
在spec.template.spec.containers
下的argocd-repo-server
容器中添加代理相关的环境变量,示例如下:
spec:
template:
spec:
containers:
- name: argocd-repo-server
env:
- name: HTTP_PROXY
value: http://your-proxy-server:port
- name: HTTPS_PROXY
value: http://your-proxy-server:port
- name: NO_PROXY
value: localhost,127.0.0.1,.svc,.cluster.local
- 保存并退出
编辑完成后,保存并退出编辑器,Kubernetes 会自动更新 Argo CD Repo Server 部署。
3. Argo CD Application Controller 代理设置
Argo CD Application Controller 负责监控和同步应用,也可以通过修改其部署配置来设置代理。
步骤:
- 编辑 Argo CD Application Controller 部署
kubectl edit deployment argocd-application-controller -n argocd
- 添加代理环境变量
在spec.template.spec.containers
下的argocd-application-controller
容器中添加代理相关的环境变量,示例如下:
spec:
template:
spec:
containers:
- name: argocd-application-controller
env:
- name: HTTP_PROXY
value: http://your-proxy-server:port
- name: HTTPS_PROXY
value: http://your-proxy-server:port
- name: NO_PROXY
value: localhost,127.0.0.1,.svc,.cluster.local
- 保存并退出
编辑完成后,保存并退出编辑器,Kubernetes 会自动更新 Argo CD Application Controller 部署。
验证代理设置
设置完成后,可以通过查看 Argo CD 相关组件的日志来验证代理是否生效,例如查看 Argo CD Server 的日志:
kubectl logs -f deployment/argocd-server -n argocd
如果代理设置正确,Argo CD 组件在与外部服务(如 Git 仓库)交互时会通过代理服务器进行请求。