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 或其他套接字流量。

相关文章