Cómo configurar un clúster de Kubernetes
El entorno de laboratorio inicial consiste en un servidor remoto que ejecuta KVM en el que se instalaron tres máquinas virtuales utilizando Ubuntu 16.04. Cada máquina virtual (VM) tiene una interfaz de red unida (bridged) a una interfaz de red física en el servidor remoto, de modo que cada VM utiliza una interfaz diferente del servidor y las direcciones IP se asignan en consecuencia.
Al final de este tutorial, se tendrá un clúster kubernetes que consta de un máster Kubernetes y dos nodos Kubernetes.
Instalación de Docker
Primero, instalemos actualizaciones, dependencias y docker:
sudo apt update
sudo apt upgrade
sudo apt install apt-transport-https # ya instalado
sudo apt install docker.io
Ahora, se puede iniciar Docker y permitir que se inicie durante el arranque del sistema:
sudo systemctl start docker
sudo systemctl enable docker
Instalación de Kubernetes
Antes de la instalación, necesitamos agregar la clave:
sudo curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
Para crear el repositorio de apt para Kubernetes, abrimos el archivo:
sudo nano /etc/apt/sources.list.d/kubernetes.list
y se agrega la siguiente línea, luego se puede cerrar el archivo:
deb http://apt.kubernetes.io/ kubernetes-xenial main
Hora de actualizar e instalar kubernetes:
sudo apt update
sudo apt install kubelet kubeadm kubectl kubernetes-cni
Kubernetes máster
Para inicializar el clúster de Kubernetes para que se ejecute como máster, se ejecuta el siguiente comando:
sudo kubeadm init --pod-network-cidr 10.244.0.0/16
Si se obtiene este error:
[preflight] Some fatal errors occurred:
[ERROR Swap]: running with swap on is not supported. Please disable swap
[preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`
Se deberá deshabilitar el swap:
sudo nano /etc/fstab # comment swap to disable permanently
sudo swapoff -a
Después de la inicialización, se debe ver algo como esto:
Your Kubernetes master has initialized successfully!
To start using your cluster, you need to run the following as a regular user:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
https://kubernetes.io/docs/concepts/cluster-administration/addons/
You can now join any number of machines by running the following on each node
as root:
kubeadm join 10.143.6.161:6443 --token de5fen.6y2w4x7shlyhnfyf8 --discovery-token-ca-cert-hash sha256:2a9dfacf654eba7d374b8dfac0028d6a094c550c67bc084f1efcc1f4301ca656
Para completar la configuración:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Ejecute los siguientes comandos en el nodo máster para aplicar la configuración de red:
sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/k8s-manifests/kube-flannel-rbac.yml
Ahora, verifique todos los pods:
sudo kubectl get pods --all-namespaces
Nodo Kubernetes
En primer lugar, siga la instalación de Docker e instalación de Kubernetes. Luego:
kubeadm join 10.143.6.161:6443 --token de5fen.6y2w4x7shlyhnfyf8 --discovery-token-ca-cert-hash sha256:2a9dfacf654eba7d374b8dfac0028d6a094c550c67bc084f1efcc1f4301ca656
Regrese al Máster y verifique:
kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8-master Ready master 17h v1.11.0
k8-node1 Ready 37s v1.11.0
k8-node2 Ready 29s v1.11.0
¿Disfrutas leyendo este artículo?
Aquí hay algunos artículos más que tal vez le guste leer: