<p>I was able to follow the documentation and get a kubernetes cluster up. But I would like to add a second master node I tried this on the second node  but seeing an error </p>

<pre><code>[root@kubemaster02 ~]# kubeadm init --apiserver-advertise- 
address=10.122.161.XX --pod-network-cidr=10.244.0.0/16 --kubernetes- 
version=v1.10.0
[init] Using Kubernetes version: v1.10.0
[init] Using Authorization modes: [Node RBAC]
[preflight] Running pre-flight checks.
    [WARNING SystemVerification]: docker version is greater than the most 
recently validated version. Docker version: 18.03.0-ce. Max validated 
version: 17.03
    [WARNING FileExisting-crictl]: crictl not found in system path
Suggestion: go get github.com/kubernetes-incubator/cri-tools/cmd/crictl
[preflight] Some fatal errors occurred:
    [ERROR Port-10250]: Port 10250 is in use
[preflight] If you know what you are doing, you can make a check non-fatal 
with `--ignore-preflight-errors=...`
</code></pre>

<p>My question is if this is the correct way to add the second master, by doing an init ? another question I have is how to tell if the node is configured as a master or not, the following command is not showing the ROLES for some reason (may be older versions)</p>

<pre><code>[root@master01 ~]# kubectl get nodes -o wide
NAME                   STATUS    AGE       VERSION   EXTERNAL-IP   OS-IMAGE                KERNEL-VERSION
kubemaster01   Ready     215d      v1.8.1    &lt;none&gt;        CentOS Linux 7 (Core)   3.10.0-693.5.2.el7.x86_64
kubemaster02   Ready     132d      v1.8.4    &lt;none&gt;        CentOS Linux 7 (Core)   3.10.0-693.5.2.el7.x86_64
kubenode01     Ready     215d      v1.8.1    &lt;none&gt;        CentOS Linux 7 (Core)   3.10.0-693.5.2.el7.x86_64
kubenode02     Ready     214d      v1.8.1    &lt;none&gt;        CentOS Linux 7 (Core)   3.10.0-693.5.2.el7.x86_64
</code></pre>

<p>In your case, please look what is running on the port 10250 :</p>

<pre><code>netstat -nlp | grep 10250
</code></pre>

<p>Because your error is:</p>

<blockquote>
  <p>[ERROR Port-10250]: Port 10250 is in use</p>
</blockquote>

<p>In general, you can bootstrap additional master, and have 2 masters. Before running kubeadm on the other master, you need to first copy the K8s CA cert from  <code>kubemaster01</code>.  To do this, you have two options: </p>

<p><strong>Option 1: Copy with scp</strong></p>

<pre><code>scp root@&lt;kubemaster01-ip-address&gt;:/etc/kubernetes/pki/* /etc/kubernetes/pki
</code></pre>

<p><strong>Option 2: Copy paste</strong></p>

<p>Copy the contents of <code>/etc/kubernetes/pki/ca.crt</code>, <code>/etc/kubernetes/pki/ca.key</code>, <code>/etc/kubernetes/pki/sa.key</code> and <code>/etc/kubernetes/pki/sa.pub</code> and create these files manually on <code>kubemaster02</code> </p>

<p><a href="https://kubernetes.io/docs/setup/independent/high-availability/#set-up-master-load-balancer" rel="nofollow noreferrer">The next step is to create a Load Balancer</a> that sits in front of your master nodes. How you do this depends on your environment; you could, for example, leverage a cloud provider Load Balancer, or set up your own using NGINX, keepalived, or HAproxy.</p>

<p>For bootstrapping use the <code>config.yaml</code>:</p>

<pre><code>cat &gt;config.yaml &lt;&lt;EOF
apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
api:
  advertiseAddress: &lt;private-ip&gt;
etcd:
  endpoints:
 - https://&lt;your-ectd-ip&gt;:2379
  caFile: /etc/kubernetes/pki/etcd/ca.pem
  certFile: /etc/kubernetes/pki/etcd/client.pem
  keyFile: /etc/kubernetes/pki/etcd/client-key.pem
networking:
  podSubnet: &lt;podCIDR&gt;
apiServerCertSANs:
- &lt;load-balancer-ip&gt;  
apiServerExtraArgs:
  apiserver-count: "2"
EOF
</code></pre>

<p>Ensure that the following placeholders are replaced:</p>

<ul>
<li><code>your-ectd-ip</code> the IP address your etcd</li>
<li><code>private-ip</code> it with the private IPv4 of the master server.</li>
<li><code>&lt;podCIDR&gt;</code> with your Pod CIDR</li>
<li><code>load-balancer-ip</code> endpoint to connect your masters </li>
</ul>

<p>then you can run the command:</p>

<pre><code>kubeadm init --config=config.yaml
</code></pre>

<p>and bootstrap the masters.</p>

<p>But if you really want a HA cluster please follow the documentation's minimal requirements and use 3 nodes for masters. They create these requirements for  etcd quorum. On every master node they run the etcd which works very close to masters. </p>
