Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

kubernetes v1.7.1 kubeadm join hostname "" could not be reached error

Today I recreated my cluster with v1.7.1 when I run the kubeadm join --token 189518.c21306e71082d6ec command, it giving the below error. this used work in previous version of kubernetes. Is something changed in this version, How do we resolve this?

[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`

update on 7/21/17

Tested this with v1.7.2 same issue still.

# ./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`

Thanks SR

like image 208
sfgroups Avatar asked Jul 15 '17 02:07

sfgroups


2 Answers

Looks like it's trying to look up the hostname and can't because it's not in DNS. There are two ways around this:

  1. Kubernetes works better with named nodes. While this is annoying, it provides benefits in the long run, such as when you have to use different IP addresses on a reboot. You could edit /etc/hosts on each machine to give names to all the boxes in your cluster, or start up a local DNS, adding the names to that.
  2. Or, you could try skipping the preflight checks... kubeadm join --skip-preflight-checks --token TOKEN HOST:PORT
like image 195
Nathaniel Dean Avatar answered Oct 19 '22 22:10

Nathaniel Dean


According to #49065 GitHub issue, this will be fixed in 1.7.2, until then, recommendation is to use --skip-preflight-checks flag. That worked for me.

like image 26
alex Avatar answered Oct 19 '22 23:10

alex