2017-07-15 158 views
6

今天我运行kubeadm join --token 189518.c21306e71082d6ec命令,它给出了以下错误,我用v1.7.1重新创建了我的集群。这在以前版本的kubernetes中使用过。这个版本有些变化,我们如何解决这个问题?在17年7月21日kubernetes v1.7.1 kubeadm加入主机名“”无法到达错误

[[email protected] ~]# 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` 

更新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` 

感谢 SR

+0

也许参数解析器与这个版本有点儿错误。你试过'kubeadm join 192.168.15.91:6443 --token 189518.c21306e71082d6ec'吗? – Zahlex

+0

以前使用的是什么版本?该信息来自https://github.com/kubernetes/kubernetes/commit/3856d91ed8c1d3f50526236d59e35ca5885e2c80 – VonC

+0

beforeI used v1.7.0。还有一些其他机器我也可以配置版本1.6.4。 – sfgroups

回答

2

看起来像它试图查找主机名,不能因为它不是在DNS。有两种方法可以解决这个问题:

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

我的主机文件中列出了正确的IP和主机名。它适用于v1.7和更旧的版本。它仅在v1.7.1中给出错误,看起来像是在新版本中改变了一些逻辑。如果你看看这个消息,它不会得到主机名,它是空的。 – sfgroups

+0

您是否尝试过使用“/ etc/hosts”中的主机名而不是通过其IP地址引用该方框? –

+0

是的,它得到相同的错误信息。 – sfgroups

0

我想确认,这应该问题只能在V1.7.1。我在GCloud实验室也发现了这个问题。现在我的解决方案是使用V1.7.0的滚动状态,如果发现。请看下面的步骤测试:

======================================= =============

实验室说明(所有节点已经安装泊坞窗/ kubelet/kubectl/kubeadm):
机器名角色:IP地址:
kubeserve-MS掌握192.168.99.200
kubeserve-1 NodePort 192.168.99.201
kubeserve-2 NodePort 192.168.99.202

======== ===========================================

1。 (kubeserve_ms)通过命令初始群集(su到根):
kubeadm INIT --pod-网络CIDR = 10.244.0.0/16 --token 8c2350.f55343444a6ffc46

2.(kubeserve_ms)设置运行集群系统通过命令(普通用户):
MKDIR -p $ HOME/.kube
须藤CP -i /etc/kubernetes/admin.conf $ HOME/.kube /配置
须藤CHOWN $(ID -u):$ (id -g)$ HOME/.kube/config
3 (kubeserve_ms)INIT簇由命令:
须藤苏 -
kubeadm INIT --pod-网络CIDR = 10.244.0.0/16 --token 8c2350.f55343444a6ffc46
4。(kubeserve_ms)通过命令应用于编织网络模块:
kubectl申请-n KUBE系统-f “https://cloud.weave.works/k8s/net?k8s-version= $(kubectl版本|的base64 | TR -d '\ n')”
5.(kubeserve-1, kuberserve-2)开始通过命令连接节点:
kubeadm --token 8c2350.f55343444a6ffc46加入192.168.99.200:6443
结果
kubeadm加入kubernetes-MS:6443 --token 8c2350.f55343444a6ffc46
[ kubeadm]警告:kubeadm处于测试阶段,请勿将其用于生产群集。
[preflight]正在运行飞行前检查
[预检]警告:码头版本大于最新验证版本。 Docker版本:17.06.0-ce。最大验证版本:1.12
[预检]警告:主机名“”无法达到
[预检]警告:主机名“”查找:没有这样的主机发生
[预检一些致命的错误: 主机名“”一个DNS -1123子域必须由小写字母数字字符' - '或'。'组成,并且必须以字母数字字符开头和结尾(例如'example.com',用于验证的正则表达式是'a-z0-9? A-Z0-9)*')
[预检]如果你知道你在做什么,你可以跳过预检与--skip-preflight-checks

解决方案现在的解决方法:
配版安装“kubelet”,“kubeadm”,“kubectl” 1.7.0一切workfine

+0

v1.7.2 - 发布我们需要测试这个。 – sfgroups

+0

我正在使用kubeadm v1.7.2。有同样的问题。 –

2

根据#49065 GitHub上的问题,这将是固定在1.7.2,在此之前,建议您使用--skip-preflight-checks标志。这对我有效。

+0

好消息。我比较了从V1.7.0到V1.7.1的代码。我没有看到验证主机名的kubeadm代码的任何更改。 – sfgroups

相关问题