Introducción
Configurar Kubernetes en Ubuntu es un viaje que transforma su infraestructura en un potente centro de orquestación de contenedores, que le permite implementar, escalar y administrar contenedores de aplicaciones en un grupo de máquinas. Kubernetes, también conocido como K8, automatiza la implementación, el tamaño y el funcionamiento de los contenedores de aplicaciones, lo que facilita a los desarrolladores y administradores de sistemas la gestión de aplicaciones.
Este artículo proporciona una guía completa para configurar Kubernetes en Ubuntu, que cubre todo, desde la instalación hasta el funcionamiento. Ya sea que esté configurando un clúster de un solo nodo para desarrollo o un clúster de múltiples nodos para producción, esta guía lo guiará a través de los pasos necesarios para que su clúster de Kubernetes esté en funcionamiento.
Requisitos previos
Antes de comenzar, asegúrese de tener:
- Una o más máquinas que ejecuten Ubuntu 18.04 LTS o posterior, cada una con al menos 2 GB de RAM y 2 CPU.
- Una cuenta de usuario con privilegios sudo en cada máquina.
- Las máquinas están conectadas en red y pueden comunicarse entre sí.
Paso 1: preparar el entorno
Actualice su sistema: comience actualizando su sistema para asegurarse de que todos los paquetes estén actualizados.
sudo apt-get update
sudo apt-get upgrade -y
Instalar Docker: Kubernetes usa Docker como tiempo de ejecución de contenedor. Instale Docker en cada máquina.
sudo apt-get install docker.io -y
Después de la instalación, agregue su usuario al grupo de Docker para ejecutar comandos de Docker sin sudo.
sudo usermod -aG docker $USER
Deshabilitar el intercambio: Kubernetes requiere que deshabilites el intercambio en cada máquina.
sudo swapoff -a
Para que este cambio sea permanente, comente cualquier entrada de intercambio en /etc/fstab.
Paso 2: instalar los componentes de Kubernetes
Agregar repositorio de Kubernetes: agregue el repositorio de paquetes de Kubernetes a cada máquina.
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb http://apt.kubernetes.io/kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
Instale Kubernetes: instale kubeadm, kubelet y kubectl en cada máquina.
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
Bloquee sus versiones para evitar actualizaciones automáticas.
sudo apt-mark hold kubelet kubeadm kubectl
Paso 3: inicializar el clúster
En el nodo maestro, inicialice el clúster usando kubeadm.
sudo kubeadm init --pod-network-cidr=192.168.0.0/16
Después de la inicialización, siga las instrucciones que aparecen en pantalla para comenzar a usar el clúster. Por lo general, esto implica ejecutar los siguientes comandos como un usuario normal.
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Paso 4: configurar una red Pod
Instale un complemento de red de pods en su clúster para que sus pods puedan comunicarse entre sí. Calico es una opción popular que se puede instalar con:
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
Paso 5: unir los nodos al clúster
Para agregar nodos trabajadores a su clúster, use el comando kubeadm join que se proporciona al final del proceso de inicialización maestra. Ejecute este comando en cada nodo trabajador.
sudo kubeadm join <master-ip>:<port> --token <token> --discovery-token-ca-cert-hash sha256:<hash>
Paso 6: implemente sus aplicaciones
Con su clúster en funcionamiento, está listo para implementar aplicaciones. Puede comenzar implementando una aplicación simple utilizando un archivo YAML de implementación.
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
Aplique esta distribución usando: kubectl apply -f <filename>.yaml
.
Paso 7: Escale y administre su clúster
Escale sus aplicaciones ajustando la cantidad de réplicas en su implementación y administre los recursos de su clúster usando kubectl, la herramienta de línea de comandos de Kubernetes. Explore implementaciones más complejas, configure Kubernetes Dashboard para una GUI y considere instalar Helm para la administración de paquetes.
Conclusión
¡Felicidades! Ha configurado correctamente un clúster de Kubernetes en Ubuntu. Este clúster ahora está listo para la implementación de aplicaciones. Recuerde, Kubernetes es una herramienta poderosa y hay mucho más que aprender sobre sus características y capacidades. Experimente implementando diferentes aplicaciones, escalelas y explore las numerosas características de Kubernetes para sentirse cómodo administrando sus entornos en contenedores.