<p>I was trying to <a href="https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/" rel="nofollow noreferrer">create a single master cluster with kubeadm</a> in a CentOS VM.</p>

<p>I would like to schedule pods on the master node, so I run the following</p>

<pre><code>kubectl taint nodes --all node-role.kubernetes.io/master-
</code></pre>

<p>But then, when I try to run </p>

<pre><code>kubeadm join --token &lt;token&gt; &lt;master-ip&gt;:&lt;master-port&gt; --discovery-token-ca-cert-hash sha256:&lt;hash&gt;
</code></pre>

<p>with the proper input of token, master-ip, master-port and hash.The pre-flight checks give the following errors:</p>

<pre><code>/etc/kubernetes/manifests is not empty
/etc/kubernetes/kubelet.config already exists
Port 10250 is in use
/etc/kubernetes/pki/ca.crt already exists
</code></pre>

<p>How can I fix the errors so that pods can still be scheduled on master node? Thanks</p>

<p>You basically don't need <code>kubeadm join</code> on the master since it's already set up by <code>kubeadm init</code>. Also, the fact that you removed the taint on your master node to run pods should be enough for you to run pods on the master (use this just for test).</p>

<p>If you want a K8s node to join a cluster to run your pods you would use <code>kubeadm join</code>, in this case, you could taint your master to not run any pods. (You could remove the taint if you wanted to, but it's not recommended to run workloads on your master, especially in production)</p>
