在 Kubernetes Pod 中设置代理环境变量
将受支持的 HTTP 代理变量放入 Kubernetes 容器规范,并把集群直连路由与镜像拉取配置分开保留。
Kubernetes 节点上的命令可以使用 shell 代理,而该节点上的 Pod 却没有代理环境。容器的环境由其镜像和 Pod 配置决定。
对于支持这些变量的应用程序,请在其现有容器条目中添加 env 列表:
env:
- name: HTTP_PROXY
value: http://proxy.example:8080
- name: HTTPS_PROXY
value: http://proxy.example:8080
- name: NO_PROXY
value: localhost,127.0.0.1,kubernetes.default.svc,.svc,.cluster.local
在 Deployment 中,这位于 spec.template.spec.containers 中相关容器的下面。通过其正常发布更新工作负载,以便新的 Pod 获得该配置。当实际客户端要求时,也提供小写名称。
绕过列表只是起步示例,并非集群每条路由的清单。请使用集群真实的 DNS 后缀和内部目标。使用服务 IP 的应用程序可能需要以其客户端支持的语法写出真实的服务网段。
Init 容器有自己的容器规范。当它们执行外部下载时,请在那里添加所需的配置。对于公开 HTTP 下载,来自 HTTP 代理列表的端点可以作为这些容器环境值的候选。
镜像拉取发生在应用程序运行之前,由节点的容器运行时执行。Pod env 无法配置更早的镜像仓库连接。
最后,HTTP 代理变量只影响使用它们的客户端。它们不会重定向 Pod 发出的任意数据库、UDP 或其他套接字流量。