6.9 KiB
Clústers
Índice
Clústers en local
kind
En Linux, podemos instalar 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
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: