无法从代理后面拉出 kubernetes dns 容器

Can't pull kubernetes dns container from behind proxy

我正在尝试为我的 kubernetes 集群启用 skyDNS 插件。我在公司代理后面,它似乎无法与 gcr.io 通话。日志中出现以下错误:

Oct 20 13:55:46 atomic01.localdomain kubelet[112453]: W1020 13:55:46.143403  112453 manager.go:1569] Failed to pull image "gcr.io/google_containers/kube2sky:1.11" from pod "kube-dns-v9-w492r_kube-system" and container "kube2sky": image pull failed for gcr.io/google_containers/kube2sky:1.11, this may be because there are no credentials on this request.  details: (invalid character '<' looking for beginning of value)

我尝试从 gcr.io 中提取的任何内容都失败了,即使是手动操作也是如此:

# docker pull gcr.io/google_containers/etcd:2.0.9
Trying to pull repository gcr.io/google_containers/etcd ... failed
invalid character '<' looking for beginning of value

我在 /etc/sysconfig/docker 中配置了 HTTP_PROXY 和 HTTPS_PROXY 变量。我也在同一个配置文件中启用了 INSECURE_REGISTRY='--insecure-registry gcr.io'

我不得不应用一种变通方法,即从 docker.io 手动拉取 pause 容器并使用 --pod_infra_container_image=docker.io/kubernetes/pause:latest

指定它

DNS 容器是否有这样的解决方法?我可以从其他 docker 注册表中提取图像就好了。 gcr.io registry 有什么不同,我如何将它与 kubernetes 一起使用?

您使用什么配置文件来启动 DNS 插件?您应该能够编辑它(或制作 this one 的副本)并将其指向不同的注册表。