KOPS
Kops simplifica significativamente la configuración y gestión del clúster Kubernetes en comparación con la configuración manual de nodos maestros y de trabajo. Gestiona Route53, Grupos de AutoScaling, ELBs para el servidor de API, grupos de seguridad, inicialización maestra, inicialización de nodo y actualizaciones continuas para tu clúster. Como kops es una herramienta de código abierto, su uso es totalmente gratuito, pero eres responsable de pagar y mantener la infraestructura extra creada por kops para gestionar tu clúster Kubernetes.
Kops no crea un clúster solo en AWS sino también en varias otras nubes como GCP, OpenStack Digital Ocean, Azure, Hetzner Spot Ocean.
Kops en verdad trabaja con terraform por debajo del capó. Es posible incluso exportar el código terraform que crea.
La Documentación oficial puede detallar mejor https://kops.sigs.k8s.io/
Instalación
Kops no es más que un CLI https://kops.sigs.k8s.io/getting_started/install/.
curl -Lo kops https://github.com/kubernetes/kops/releases/download/$(curl -s https://api.github.com/repos/kubernetes/kops/releases/latest | grep tag_name | cut -d '"' -f 4)/kops-linux-amd64
chmod +x kops
sudo mv kops /usr/local/bin/kops
Requisitos para AWS
https://kops.sigs.k8s.io/getting_started/aws/
Lo primero necesario es tener un usuario en AWS con los permisos abajo, pero generalmente vas a hacer esto con un usuario cuyas permisos suelen ser administrador, pero en caso contrario estos son los permisos necesarios.
- AmazonEC2FullAccess
- AmazonRoute53FullAccess
- AmazonS3FullAccess
- IAMFullAccess
- AmazonVPCFullAccess
- AmazonSQSFullAccess
- AmazonEventBridgeFullAccess
Es necesario para el uso de kops exportar las variables abajo en tu terminal
export AWS_ACCESS_KEY_ID=XXXXXXXXXXXXXXXXXXXXXXX
export AWS_SECRET_ACCESS_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXX
Otro detalle importante es tener un lugar para guardar el estado del clúster, así como sucede con terraform.
Crea un bucket s3 o usa uno que ya exista, pero garantiza que esté versionado
aws s3api create-bucket --bucket kops-states-company --region us-east-1
aws s3api put-bucket-versioning --bucket kops-states-company --region us-east-1 --versioning-configuration Status=Enabled
Para no tener que estar pasando la flag --state y pasar puede simplemente exportar la variable
export KOPS_STATE_STORE=s3://kops-states-company
Ventajas y desventajas
Kops gestionará la mayoría de los recursos de AWS necesarios para ejecutar un clúster Kubernetes y trabajará con una VPC nueva o existente. A diferencia de EKS, kops también creará tus nodos maestros como instancias de EC2, y podrás acceder a esos nodos directamente y hacer modificaciones. Con acceso a los nodos maestros, puedes elegir qué capa de red usar, elegir el tamaño de las instancias maestras y monitorear directamente los nodos maestros. También tienes la opción de configurar un clúster con apenas un único maestro, lo que puede ser deseable para entornos de desarrollo y prueba donde la alta disponibilidad no es un requisito. Kops también soporta la generación de configuración de terraform para tus recursos en vez de crearlos directamente, lo que es un buen recurso si usas terraform.
Kops es la manera más rápida de tener un clúster totalmente funcional para producción.