<p>I'm pretty new to Kubernetes and clusters so this might be very simple.</p>

<p>I set up a Kubernetes cluster with 5 nodes using <code>kubeadm</code> following <a href="http://kubernetes.io/docs/getting-started-guides/kubeadm/" rel="noreferrer">this guide</a>. I got some issues but it all worked in the end. So now I want to install the <a href="http://kubernetes.io/docs/user-guide/ui/" rel="noreferrer">Web UI (Dashboard)</a>. To do so I need to set up authentication:</p>

<blockquote>
  <p>Please note, this works only if the apiserver is set up to allow authentication with username and password. This is not currently the case with the some setup tools (e.g., kubeadm). Refer to the authentication admin documentation for information on how to configure authentication manually.</p>
</blockquote>

<p>So I got to read <a href="http://kubernetes.io/docs/admin/authentication/" rel="noreferrer">authentication page</a> of the documentation. And I decided I want to add authentication via a <a href="http://kubernetes.io/docs/admin/authentication/#static-password-file" rel="noreferrer">Static Password File</a>. To do so I have to append the option <code>--basic-auth-file=SOMEFILE</code> to the Api server. </p>

<p>When I do <code>ps -aux | grep kube-apiserver</code> this is the result, so it is already running. (which makes sense because I use it when calling <code>kubectl</code>)</p>

<pre><code>kube-apiserver 
  --insecure-bind-address=127.0.0.1
  --admission-control=NamespaceLifecycle,LimitRanger,ServiceAccount,PersistentVolumeLabel,DefaultStorageClass,ResourceQuota 
  --service-cluster-ip-range=10.96.0.0/12 
  --service-account-key-file=/etc/kubernetes/pki/apiserver-key.pem 
  --client-ca-file=/etc/kubernetes/pki/ca.pem 
  --tls-cert-file=/etc/kubernetes/pki/apiserver.pem 
  --tls-private-key-file=/etc/kubernetes/pki/apiserver-key.pem 
  --token-auth-file=/etc/kubernetes/pki/tokens.csv 
  --secure-port=6443 
  --allow-privileged 
  --advertise-address=192.168.1.137
  --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname 
  --anonymous-auth=false 
  --etcd-servers=http://127.0.0.1:2379
</code></pre>

<p>Couple of questions I have:</p>

<ul>
<li>So where are all these options set? </li>
<li>Can i just kill this process and restart it with the option I need?  </li>
<li>Will it be started when I reboot the system?</li>
</ul>

<p>in <code>/etc/kubernetes/manifests</code> is a file called <code>kube-apiserver.json</code>. This is a JSON file and contains all the option you can set. I've appended the <code>--basic-auth-file=SOMEFILE</code> and rebooted the system (right after the change of the file <code>kubectl</code> wasn't working anymore and the API was shutdown)</p>
<p>After a reboot the whole system was working again.</p>
<h2>Update</h2>
<p>I didn't manage to run the dashboard using this. What I did in the end was  installing the dashboard on the cluster. copying the keys from the master node (/etc/kubernetes/admin.conf) to my laptop and did <code>kubectl proxy</code> to proxy the traffic of the dashboard to my local machine. Now I can access it on my laptop through 127.0.0.1:8001/ui</p>
