<p>Kubeadm init issue.</p>

<p>Config data versions:</p>

<pre><code>os -rhel7.5
env -onprem server
docker - 19
kube - 18
</code></pre>

<p>Console output:</p>

<pre><code>[wait-control-plane] Waiting for the kubelet to boot up the control plane as static Pods from directory "/etc/kubernetes/manifests". This can take up to 4m0s
[kubelet-check] Initial timeout of 40s passed.
[kubelet-check] It seems like the kubelet isn't running or healthy.
[kubelet-check] The HTTP call equal to 'curl -sSL http://localhost:10248/healthz' failed with error: Get http://localhost:10248/healthz: dial tcp [::1]:10248: connect: connection refused.
[kubelet-check] It seems like the kubelet isn't running or healthy.
[kubelet-check] The HTTP call equal to 'curl -sSL http://localhost:10248/healthz' failed with error: Get http://localhost:10248/healthz: dial tcp [::1]:10248: connect: connection refused.
[kubelet-check] It seems like the kubelet isn't running or healthy.
[kubelet-check] The HTTP call equal to 'curl -sSL http://localhost:10248/healthz' failed with error: Get http://localhost:10248/healthz: dial tcp [::1]:10248: connect: connection refused.
[kubelet-check] It seems like the kubelet isn't running or healthy.
[kubelet-check] The HTTP call equal to 'curl -sSL http://localhost:10248/healthz' failed with error: Get http://localhost:10248/healthz: dial tcp [::1]:10248: connect: connection refused.
</code></pre>

<p>What goes wrong and how to resolve it?</p>

<p>Based on the information you provided there are couple of things that can be done here. <br>
<br>
<strong>First</strong> you can check if docker`s native cgroupdriver and kubelet are  consistent. 
You can view the config of the kubelet by running:</p>

<pre><code>cat /var/lib/kubelet/kubeadm-flags.env 
</code></pre>

<p>To check docker config you can simply use: </p>

<pre><code>docker info | grep Cgroup
</code></pre>

<p>If you need to change it you can do it like this: </p>

<pre><code>cat &lt;&lt; EOF &gt; /etc/docker/daemon.json
{
  "exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
</code></pre>

<p>To change kubelet cgroup driver you have to: </p>

<pre><code>`vi /etc/systemd/system/kubelet.service.d/10-kubeadm.conf`
</code></pre>

<p>and update  <code>KUBELET_CGROUP_ARGS=--cgroup-driver=&lt;systemd or cgroupfs&gt;</code></p>

<p><strong>Second</strong> possible solution could be disabling  swap. 
You can do that with these commands: </p>

<pre><code>sudo swapoff -a
sudo sed -i '/ swap / s/^/#/' /etc/fstab
</code></pre>

<p>Reboot a machine after that and then perform <code>kubeadm reset</code> and try to initialize the cluster with <code>kubeadm init</code>.</p>
