Skip to main content

KOPS

https://kops.sigs.k8s.io/

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.