Configuración de kops y creación de clúster Kubernetes en AWS
Clase 24 de 33 • Curso Práctico de Cloud Computing con AWS
Introducción
kops es una herramienta que nos permite crear y administrar kubernetes (también conocido como k8s) en AWS (y otros clouds). En esta lectura pondremos las instrucciones para configurarlo localmente y crear un cluster de k8s en AWS.
Instrucciones
Como root, en alguna instancia EC2 pequeña o en su máquina local (estas instrucciones son para linux).
- sudo apt update
- sudo apt install -y awscli
- sudo snap install kubectl --classic
- curl -LO https://github.com/kubernetes/kops/releases/download/1.7.0/kops-linux-amd64
- chmod +x kops-linux-amd64
- mv ./kops-linux-amd64 /usr/local/bin/kops
- Tienen que crear un usuario llamado kops en IAM.
- Entren en IAM, hagan un nuevo usuario.
- Configuren esto como acceso programatico.
- Apunten el Access Key ID y el password.
- Asígnenle el rol de AdministratorAccess (un rol preconfigurado en AWS IAM).
- Salvar.
- Regresen de la consola de AWS a tu consola / terminal, y continúen con lo siguiente:
- aws config
- aws iam create-group --group-name kops
- aws iam attach-group-policy --policy-arn arn:aws:iam::aws:policy/AmazonEC2FullAccess --group-name kops
- aws iam attach-group-policy --policy-arn arn:aws:iam::aws:policy/AmazonRoute53FullAccess --group-name kops
- aws iam attach-group-policy --policy-arn arn:aws:iam::aws:policy/AmazonS3FullAccess --group-name kops
- aws iam attach-group-policy --policy-arn arn:aws:iam::aws:policy/IAMFullAccess --group-name kops
- aws iam attach-group-policy --policy-arn arn:aws:iam::aws:policy/AmazonVPCFullAccess --group-name kops
- aws iam add-user-to-group --user-name kops --group-name kops
- aws s3api create-bucket --bucket s3kopstudominiocom --region us-west-2
- Antes de ejecutar el próximo comando, anexen lo siguiente a su archivo ~/.bashrc (al final): export AWS_ACCESS_KEY_ID=tuaccesskey export AWS_SECRET_ACCESS_KEY=tusecret export KOPS_STATE_STORE=s3://s3kopstudominiocom export KOPS_CLUSTER_NAME=kops-cluster-tudominio
- Sálvenlo. Cierren sesión con “exit” y vuelvan a entrar. Ahora si, ejecuta:
- kops create cluster --name=kops-cluster-tudominio --cloud=aws --zones=us-west-2a --state=s3kopstudominiocom
- Esta operación puede tardar 20 minutos.
- Cuando terminen, denle: kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
- Con eso, se instalará el dashboard de k8s que vieron en el ejemplo.
- Loguearse con user admin, y el password se obtiene con: kops get secrets kube --type secret -oplaintext
- Cuando se conecten, seleccionen anunciarse por token, y el token lo obtienen ejecutando lo siguiente: kops get secrets admin --type secret -oplaintext
- Con eso, ya podrán dar click en “Create” y poder poner su imagen del contenedor en ECR.
- Cuando termine de hacer el deployment, encontrarán la url en la sección en el menú llamada “Services”.
Nota:
Si estas instrucciones las llevan a cabo en su máquina local, si tecleas kubectl proxy, tendrán el dashboard en la dirección: https://localhost:8001 - Noten que usa https siempre, y que el certificado no es confiable, por lo que tendrán que autorizar a su browser para poder abrirlo. La url completa para el dashboard, utilizando kubectl proxy, es:
Conclusión:
Esta actividad no es fácil. Kubernetes es un proyecto en construcción, por lo que está en constante cambio todo el tiempo, y evoluciona tan rápido que estas instrucciones podrían volverse obsoletas pronto, por lo que les pido que no desesperen, y que si hay alguna situación que no esté funcionando, pregunten en la sección de comentarios.