如何在防火墙后执行 "kubeadm init" v1.6.4

How to execute "kubeadm init" v1.6.4 behind firewall

是否可以 运行 "kubeadm init" 没有互联网接入?

在不允许主机建立外部连接的隔离网络上执行 kubeadm init 时,它无法下载某种稳定版本检查,因为它会尝试检索 https://storage.googleapis.com/kubernetes-release/release/stable-1.6.txt .

# kubeadm init
[kubeadm] WARNING: kubeadm is in beta, please do not use it for production clusters.
unable to get URL "https://storage.googleapis.com/kubernetesrelease/release/stable-1.6.txt": Get https://storage.googleapis.com/kubernetes-release/release/stable-1.6.txt: dial tcp 216.58.204.80:443: i/o timeout

为什么需要这个检查?那个URL的内容今天好像是"v1.6.4",也就是安装的版本:

# kubeadm version
kubeadm version: version.Info{Major:"1", Minor:"6", GitVersion:"v1.6.4", GitCommit:"d6f433224538d4f9ca2f7ae19b252e6fcb66a3ae", GitTreeState:"clean", BuildDate:"2017-05-19T18:33:17Z", GoVersion:"go1.7.5", Compiler:"gc", Platform:"linux/amd64"}

这似乎是 1.6.0 之后引入的行为。我查看了文档、标志、配置选项,但没有找到一种方法来执行 kubeadm init 没有这个(甚至没有 --skip-preflight-checks)。

使用以下命令解决:

kubeadm init --kubernetes-version=v1.6.4

(注意版本号中的"v")