在某些场景中,往往需要离线或使用代理 (Proxy), 例如:
-
需要通过 Proxy pull 容器镜像:
-
Docker Hub:
docker.io
-
Quay:
quay.io
-
GCR:
gcr.io
-
GitHub 镜像库:
ghcr.io
-
-
在某些企业环境中,需要通过代理访问外部服务
docker 配置代理
|
|
containerd 配置代理
containerd 的配置一般位于 /etc/containerd/config.toml
下,service 文件位于:/etc/systemd/system/containerd.service
配置 Proxy 可以通过 service 环境变量方式配置,具体如下:
创建或编辑文件:/etc/systemd/system/containerd.service.d/http-proxy.conf
|
|
NO_PROXY 的推荐配置
在配置 Proxy 时要特别注意,哪些要走 Proxy, 哪些不走 Proxy 要非常明确,避免出现网络访问异常甚至业务异常。
这里有个推荐 NO_PROXY
配置:
-
本地地址和网段:
localhost
和127.0.0.1
或127.0.0.0/8
-
Kubernetes 的默认域名后缀:
.svc
和.cluster.local
-
Kubernetes Node 的网段甚至所有应该不用 proxy 访问的 node 网段:
<nodeCIDR>
-
APIServer 的内部 URL:
<APIServerInternalURL>
-
Service Network:
<serviceNetworkCIDRs>
-
(如有)etcd 的 Discovery Domain:
<etcdDiscoveryDomain>
-
Cluster Network:
<clusterNetworkCIDRs>
-
其他特定平台相关网段(如 DevOps, Git/制品仓库。..):
<platformSpecific>
-
其他特定
NO_PROXY
网段:<REST_OF_CUSTOM_EXCEPTIONS>
-
常用内网网段:
-
10.0.0.0/8
-
172.16.0.0/12
-
192.168.0.0/16
-