kubernetes v1.7.1 kubeadm join hostname""无法访问错误

sfg*_*ups 6 kubernetes kubeadm

今天我在运行kubeadm join --token 189518.c21306e71082d6ec命令时用v1.7.1重新创建了我的集群,它给出了以下错误.这在以前版本的kubernetes中使用过.在这个版本中有什么变化,我们如何解决这个问题?

[root@k8s17-02 ~]# kubeadm join --token 189518.c21306e71082d6ec 192.168.15.91:6443
[kubeadm] WARNING: kubeadm is in beta, please do not use it for production clusters.
[preflight] Running pre-flight checks
[preflight] WARNING: hostname "" could not be reached
[preflight] WARNING: hostname "" lookup : no such host
[preflight] Some fatal errors occurred:
        hostname "" a DNS-1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character (e.g. 'example.com', regex used for validation is '[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*')
[preflight] If you know what you are doing, you can skip pre-flight checks with `--skip-preflight-checks`
Run Code Online (Sandbox Code Playgroud)

更新于7/21/17

用v1.7.2测试了同样的问题.

# ./kubeadm version
kubeadm version: &version.Info{Major:"1", Minor:"7", GitVersion:"v1.7.2", GitCommit:"922a86cfcd65915a9b2f69f3f193b8907d741d9c", GitTreeState:"clean", BuildDate:"2017-07-21T08:08:00Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}

# ./kubeadm join --token 189518.c21306e71082d6ec 192.168.15.91:6443
[kubeadm] WARNING: kubeadm is in beta, please do not use it for production clusters.
[preflight] Running pre-flight checks
[preflight] WARNING: hostname "" could not be reached
[preflight] WARNING: hostname "" lookup : no such host
[preflight] Some fatal errors occurred:
        hostname "" a DNS-1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character (e.g. 'example.com', regex used for validation is '[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*')
[preflight] If you know what you are doing, you can skip pre-flight checks with `--skip-preflight-checks`
Run Code Online (Sandbox Code Playgroud)

谢谢SR

小智 5

看起来它正在尝试查找主机名但无法查找,因为它不在 DNS 中。有两种方法可以解决这个问题:

  1. Kubernetes 与命名节点配合得更好。虽然这很烦人,但从长远来看,它提供了好处,例如当您必须在重新启动时使用不同的 IP 地址时。您可以/etc/hosts在每台计算机上进行编辑,为集群中的所有机器命名,或者启动本地 DNS,将名称添加到其中。
  2. 或者,您可以尝试跳过飞行前检查......kubeadm join --skip-preflight-checks --token TOKEN HOST:PORT