Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to install latest production-level Kubernetes in Ubuntu 14

1. Followed -> https://kubernetes.io/docs/getting-started-guides/ubuntu/manual/

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

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

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

Outdated Documentation?

2. From official git repo, I have downloaded 1.6.4 version (Branch->Tag->v1.6.4) After cluster/ubuntu/config-default.sh configuration I ran KUBERNETES_PROVIDER=ubuntu ./kube-up.sh in cluster directory. But some of the links are outdated!

error

3. Finally I tried in Ubuntu 16 with kubeadm.https://kubernetes.io/docs/getting-started-guides/kubeadm/

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

Any help?(Mainly I want to install K8 in Ubuntu 14)

UPDATE 1

Point 3(K8 on Ubuntu 16 with kubeadm) is resolved by running

  sudo cp /etc/kubernetes/admin.conf $HOME/
  sudo chown $(id -u):$(id -g) $HOME/admin.conf
  export KUBECONFIG=$HOME/admin.conf
like image 547
Veerendra Avatar asked Jun 01 '17 08:06

Veerendra


2 Answers

I have had some fun with this :-)

So, Kubernetes 1.6.4 on Ubuntu 14.04 (Trusty):

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

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

You can follow the official guide installing kubeadm and creating the cluster. Just skip the kubeadm and kubelet installation steps and use the script above instead.

There is a demo at: https://asciinema.org/a/124160

The steps are:

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

It's not a nice & clean solution but it works.

like image 154
Janos Lenart Avatar answered Oct 23 '22 04:10

Janos Lenart


kubeadm is the way to go. kube-up.sh has been deprecated long back. https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/

You may also want to try https://www.ubuntu.com/containers/kubernetes

like image 29
Mayur Nagekar Avatar answered Oct 23 '22 04:10

Mayur Nagekar