Bueno, aquí dejo algunos apuntes (ojo, ésto no es una guía ni una biblia; son sólo eso, apuntes) tras repasarme los cursos «Kubernetes Quick Start» y «Cloud Native Certified Kubernetes Administrator (CKA)» de LinuxAcademy.com
Cómo instalar Docker + Kubernetes from scratch en CentOS
Usando Flannel para la gestión de la red.
Dejo un copy&paste de las instrucciones originales de LinuxAcademy.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
#The first thing that we are going to do is use SSH to log in to all machines. Once we have logged in, we need to elevate privileges using sudo. sudo su #Disable SELinux. setenforce 0 sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux #Enable the br_netfilter module for cluster communication. modprobe br_netfilter echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables #Disable swap to prevent memory allocation issues. swapoff -a vim /etc/fstab.orig -> Comment out the swap line #Install the Docker prerequisites. yum install -y yum-utils device-mapper-persistent-data lvm2 #Add the Docker repo and install Docker. yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo yum install -y docker-ce #Configure the Docker Cgroup Driver to systemd, enable and start Docker sed -i '/^ExecStart/ s/$/ --exec-opt native.cgroupdriver=systemd/' /usr/lib/systemd/system/docker.service systemctl daemon-reload systemctl enable docker --now #Add the Kubernetes repo. cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 enabled=1 gpgcheck=0 repo_gpgcheck=0 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg EOF #Install Kubernetes. yum install -y kubelet kubeadm kubectl #Enable Kubernetes. The kubelet service will not start until you run kubeadm init. systemctl enable kubelet *Note: Complete the following section on the MASTER ONLY! #Initialize the cluster using the IP range for Flannel kubeadm init --pod-network-cidr=10.244.0.0/16 #Copy the kubeadmin join command. Exit sudo and run the following: mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config #Deploy Flannel. kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml #Check the cluster state. kubectl get pods --all-namespaces *Note: Complete the following steps on the NODES ONLY! #Run the join command that you copied earlier (this command needs to be run as sudo), then check your nodes from the master. kubectl get nodes |
Nota:
Al final k8s es una capa encima de docker que usa la API de docker para manipularlo. Puedes correr un docker ps en las instancias para ver exactamente qué está pasando por debajo de k8s (en docker)