KubeOne apply using hostnames for publicAddress

Running ‘kubeone apply -m <config_file> -v 3’ returns the following error:

INFO[09:47:23 UTC] Determine operating system…                  
INFO[09:47:23 UTC] Running host probes…                         
ERRO[09:47:23 UTC] version was: "": Invalid Semantic Version     node=<node_FQDN>
WARN[09:47:23 UTC] Task failed, error was: at least one of the tasks has encountered an error 
WARN[09:47:28 UTC] Retrying task…   

The config file section looks like this:

controlPlane:
  hosts:
  - publicAddress: '<node_FQDN>'
    privateAddress: '192.168.1.102'
    sshUsername: root
    sshPrivateKeyFile: '/root/.ssh/id_rsa'
    sshAgentSocket: 'env:SSH_AUTH_SOCK'
    taints:
    - key: "node-role.kubernetes.io/master"
      effect: "NoSchedule"

Other Notes: DNS resolution works fine, and for static workers defined in config file it seems that the FQDN declaration for the publicAddress renders no issues

This has nothing to do with node FQDN or address. It failed to detect the version of docker or kubelet. I suspect you’ve installed something manually in incompatible way.

What OS do you run?

@kron4eg - Indeed, I already have docker and the Kubernetes Cluster already setup. I am trying to test an import of an existing K8S cluster to KubeOne.
(I had a quick discution about this with @Bill_Mulligan and yourself if I’m not mistaken)

yeah, IIRC your docker and/or kubelet binaries are downloaded manually.

I’d recommend to run kubeone install --force instead of kubeone apply. It will work in case if you run docker-ce and have systemd unit named kubelet.

Indeed I have a systemd unit named kubelet. Also maybe it’s worth mentioning that I’m running on a RHEL 7.7 OS with docker docker-1.13.1-109.gitcccb291.el7_7.x86_64. So it’s not docker-ce

You can estimate the impact on your system by looking at the

So docker-1.13.1 will definitely pose a problem, and before kubeone install you’d need to install docker-ce as a replacement.

Ok. So replacing docker-1.13.1 with docker-ce might cause some downtime. And I’m not sure that swapping docker-1.13.1 with docker-ce will not break the existing K8S deployment…

Maybe I can try to add my own kubeadm**RHEL**Template to the os.go code, and make it match my env. What do you think?

I can suggest to initially “manually migrate nodes”, taking them offline one by one to the docker-ce. It order to check what kubeone is doing exactly, please consult with:

So the end sequence would be:

  • Choose a node
  • Drain it
  • systemctl stop kubelet && systemctl stop docker
  • remove docker-1.13
  • install docker-ce according to .golden file from above
  • systemctl start docker && systemctl start kubelet
  • repeat until no more nodes left

After this Kubeone will happily manage your cluster.

Thank you for the detailed steps!

I just don’t think swapping docker-1.13 with docker-ce is an option for me right now.