<p><strong>1.</strong> Followed -> <a href="https://kubernetes.io/docs/getting-started-guides/ubuntu/manual/" rel="noreferrer">https://kubernetes.io/docs/getting-started-guides/ubuntu/manual/</a></p>

<p>After I clone as they mentioned in doc. <code>git clone --depth 1 https://github.com/kubernetes/kubernetes.git</code>. I could not find the file <code>cluster/ubuntu/config-default.sh</code> to configure cluster. </p>

<p>Ok, I left it default and try to run <code>KUBERNETES_PROVIDER=ubuntu ./kube-up.sh</code> but there is no <code>verify-kube-binaries.sh</code> file</p>

<pre><code>root@ultron:/home/veeru# KUBERNETES_PROVIDER=ubuntu ./kube-up.sh
... Starting cluster using provider: ubuntu
... calling verify-prereqs
Skeleton Provider: verify-prereqs not implemented
... calling verify-kube-binaries
./kube-up.sh: line 44: verify-kube-binaries: command not found
</code></pre>

<p>Outdated Documentation?</p>

<p><strong>2.</strong> From official <a href="https://github.com/kubernetes/kubernetes" rel="noreferrer">git repo</a>, I have downloaded 1.6.4 version (<code>Branch</code>-><code>Tag</code>-><code>v1.6.4</code>)
After <code>cluster/ubuntu/config-default.sh</code> configuration I ran <code>KUBERNETES_PROVIDER=ubuntu ./kube-up.sh</code> in <code>cluster</code> directory. But some of the links are outdated!</p>

<p><a href="https://i.stack.imgur.com/yNgIx.jpg" rel="noreferrer"><img src="https://i.stack.imgur.com/yNgIx.jpg" alt="error"></a></p>

<p><strong>3.</strong> Finally I tried in <code>Ubuntu 16</code> with <code>kubeadm</code>.<a href="https://kubernetes.io/docs/getting-started-guides/kubeadm/" rel="noreferrer">https://kubernetes.io/docs/getting-started-guides/kubeadm/</a></p>

<p>The <code>kubeadm init</code> command successfully completed without any problem, but when I try to <code>kubectl cluster-info</code>, it is showing <code>The connection to the server localhost:8080 was refused
</code> </p>

<p>Any help?(Mainly I want to install K8 in Ubuntu 14)</p>

<p><strong>UPDATE 1</strong></p>

<p>Point 3(K8 on Ubuntu 16 with <code>kubeadm</code>) is resolved by running</p>

<pre><code>  sudo cp /etc/kubernetes/admin.conf $HOME/
  sudo chown $(id -u):$(id -g) $HOME/admin.conf
  export KUBECONFIG=$HOME/admin.conf
</code></pre>

<p>I have had some fun with this :-)</p>

<p>So, Kubernetes 1.6.4 on Ubuntu 14.04 (Trusty):</p>

<ul>
<li>have <code>nsenter</code> built &amp; installed (<code>nsenter</code> is a hard <code>kubelet</code> dependency and is not present in 14.04)</li>
<li>patch up the <code>kubelet</code> and <code>kubeadm</code> packages to remove the systemd dependency (and repace it with an <code>upstart</code> script)</li>
<li>start <code>kubelet</code> manually during <code>kubeadm init</code> (because <code>kubeadm</code> only supports the systemd-style init system)</li>
</ul>

<p>I've created a proof of concept script to the above. It's available at:
<a href="https://gist.github.com/lenartj/0b264cb70e6cb50dfdef37084f892554#file-trusty-kubernetes-sh" rel="noreferrer">https://gist.github.com/lenartj/0b264cb70e6cb50dfdef37084f892554#file-trusty-kubernetes-sh</a></p>

<p>You can follow the official guide <a href="https://kubernetes.io/docs/setup/independent/install-kubeadm/" rel="noreferrer">installing kubeadm</a> and <a href="https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/" rel="noreferrer">creating the cluster</a>. Just skip the <code>kubeadm</code> and <code>kubelet</code> installation steps and use the script above instead.</p>

<p>There is a demo at: <a href="https://asciinema.org/a/124160" rel="noreferrer">https://asciinema.org/a/124160</a></p>

<p>The steps are:</p>

<ol>
<li>Install docker: <code>curl -sSL https://get.docker.com/ | sh</code></li>
<li>Install apt-transport-https: <code>apt-get update &amp;&amp; apt-get install -y apt-transport-https</code></li>
<li>Add kubernetes repository key: <code>curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key a</code></li>
<li>Add kubernetes-<em>xenial</em> repository: <code>echo 'deb http://apt.kubernetes.io/ kubernetes-xenial main' &gt;/etc/apt/sources.list.d/kubernetes.list</code></li>
<li>Install kubectl, kubernetes-cni and dependencies of kubelet: <code>apt-get install -y kubectl kubernetes-cni binutils ebtables socat</code></li>
<li>Run the script to create the kubelet and kubeadm packages and the nsenter binary: <code>curl -sSL https://gist.github.com/lenartj/0b264cb70e6cb50dfdef37084f892554#file-trusty-kubernetes-sh | bash</code></li>
<li>Install the nsenter binary: <code>cp -v /tmp/tmp.xxxxx/nsenter /usr/local/bin</code></li>
<li>Install kubelet and kubeadm packages: <code>dpkg -i /tmp/tmp.xxxxx/*-patched</code></li>
<li>Initialize the master: <code>kubeadm init</code></li>
<li>Start the kubelet (while kubeadm is waiting for the control plane): <code>service kubelet start</code></li>
<li>Configure kubectl admin credentials: <code>cp /etc/kubernetes/admin.conf $HOME/; chown $(id -u):$(id -g) $HOME/admin.conf; export KUBECONFIG=$HOME/admin.conf</code></li>
<li>Install Pod networking (weave-net): <code>kubectl apply -f https://git.io/weave-kube-1.6</code></li>
</ol>

<p>It's not a nice &amp; clean solution but it works.</p>
