Guia-Tutorial-kubernetes/guias/02-clusters.md

6.9 KiB

Clústers

Índice

Clústers en local

kind

En Linux, podemos instalar kind

Guía de instalación de Kind

En Linux tan solo hay que usar los siguientes comandos:

curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.16.0/kind-linux-amd64
chmod +x ./kind
sudo mv ./kind /usr/local/bin/kind

Una vez instalado, la creación de un clúster es tan sencillo como este comando:

kind create cluster

Para listar los clústeres:

kind get clusters

Para eliminarlo:

kind delete cluster

En este punto puede interesar crear un cluster con varios nodos y con un controlador de ingress con nginx. Este script lo hará todo por ti: config_kind_with_ingress.sh

Se le debe dar los permisos adecuados al script.

chmod +x config_kind_with_ingress.sh

minikube

También podemos instalar minikube https://minikube.sigs.k8s.io/docs/ que instala todos los componentes de kubernetes en una MV y además tiene una serie de plugins para darle funcionalidades con una serie de paquetes precinfigurados.

MicroK8s

MicroK8s instalará un Kubernetes mínimo y ligero que puede ejecutar y utilizar en prácticamente cualquier máquina.

Instalación microk8s

Instalación MicroK8s

Se puede instalar con un snap:

sudo snap install microk8s --classic --channel=1.25

Unirse al grupo

MicroK8s crea un grupo para permitir el uso sin problemas de los comandos que requieren privilegios de administrador. Para añadir su usuario actual al grupo y obtener acceso al directorio de caché .kube, ejecute los siguientes dos comandos:

sudo usermod -a -G microk8s $USER
sudo chown -f -R $USER ~/.kube

También tendrá que volver a entrar en la sesión para que la actualización del grupo se lleve a cabo:

su - $USER

Y se comprueba examinando los grupos de pertenencia del usuario:

id -nG

Comprobar estado

MicroK8s tiene un comando incorporado para mostrar su estado. Durante la instalación puede utilizar el indicador --wait-ready para esperar a que los servicios de Kubernetes se inicialicen:

microk8s status --wait-ready

Acceso a Kubernetes

MicroK8s incluye su propia versión de kubectl para acceder a Kubernetes. Utilícelo para ejecutar comandos para monitorear y controlar su Kubernetes. Por ejemplo, para ver su nodo:

microk8s kubectl get nodes

...o para ver los servicios en ejecución:

microk8s kubectl get services

MicroK8s utiliza un comando kubectl con espacio de nombre para evitar conflictos con cualquier instalación existente de kubectl. Si usted no tiene una instalación existente, es más fácil añadir un alias (añadir a ~/.bash_aliases) como este:

alias kubectl='microk8s kubectl'

Desplegar una aplicación

Por supuesto, Kubernetes está pensado para desplegar aplicaciones y servicios. Puedes usar el comando kubectl para hacerlo como con cualquier Kuberenetes. Prueba a instalar una app de demostración:

microk8s kubectl create deployment nginx --image=nginx

Puede tardar uno o dos minutos en instalarse, pero puedes comprobar el estado:

microk8s kubectl get pods

Utilizar complementos

MicroK8s utiliza el mínimo de componentes para un Kubernetes puro y ligero. ¡Sin embargo, hay un montón de características adicionales disponibles con unas pocas pulsaciones de teclas utilizando "add-ons" - componentes pre-empaquetados que proporcionarán capacidades adicionales para su Kubernetes, desde la simple gestión de DNS hasta el aprendizaje automático con Kubeflow!

Para empezar se recomienda añadir la gestión de DNS para facilitar la comunicación entre servicios. Para las aplicaciones que necesitan almacenamiento, el complemento "storage" proporciona espacio de directorio en el host. Esto es fácil de configurar:

microk8s enable dns storage

Lista completa de complementos

Iniciando y deteniendo MicroK8s

MicroK8s continuará funcionando hasta que usted decida detenerlo. Puede detener e iniciar MicroK8s con estos simples comandos:

microk8s stop

... detendrá MicroK8s y sus servicios. Puede iniciar de nuevo en cualquier momento ejecutando

microk8s start

Tenga en cuenta que si deja MicroK8s funcionando, se reiniciará automáticamente después de un reinicio. Si no quiere que esto ocurra, simplemente recuerde ejecutar microk8s stop antes de apagar.

Clúster remoto

Digital Ocean

En esta guía utilizaré DigitalOcean, con 3 nodos kubernetes de los baratitos.

Para conectar kubectl con el cluster de kubernetes se debe desarcargar el fichero kubeconfig que es donde están declarados los contextos de kubernetes. Es una combinación de la url del servidor con las credenciales de lo que se haya instalado.

Con minikube no tendríamos que hacer nada porque se configura automáticamente.

Se exporta en una variable de entorno

kubectl --kubeconfig=/<pathtodirectory>/k8s-1-24-4-do-0...........yaml get nodes

Y podremos comprobar los nodos con

kubectl get nodes

Resumen conexión de cluster Digital Ocean

Para que tenga el color y todo

export KUBECONFIG=~/Downloads/k8s-1-20.... get nodes

Comprobamos

kubectl get nodes

Vemos el contexto

kubectl config get-contexts

Añadimos el contexto en el plugin del color

kubecolor --context=do-ams3-k8s-1-24-4-do-...... get pods -o json

Nos aseguramos del alias y volvemos a comprobar

alias kubectl="kubecolor"
kubectl get nodes

Puedes seguir con la guía 03 manifiestos.

Todas las guías: