Configuración kops / k8s en AWS

24/33

Lectura

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:

http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/login

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.

Aportes 16

Preguntas 1

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

No entendí mucho, pero gracias por el articulo

Una explicación bastante pobre. Importante que puedan agregar algunos Screenshots en ciertos puntos porque ayudaran a verificar si uno esta realizando los pasos de manera correcta.

Que es esto por favor, 0 explicacion

Actualmente AWS ya tiene una herramienta propia para administrar k8s sobre AWS, se llama eksctl

Les dejo un video en el cual con una cuenta de AWS Educate y la herramienta kops cree un cluster de Kubernetes:
Video crear cluster con kops en AWS

Como que la lectura no tiene mucha explicación.

Muy mal esta supuesta explicación. Desiste de hacer esta practica porque la información no esta actualizada y genera errores que impiden el avance. El curso se ha vuelto desagradable.

Señores de Platzi. A ponerle voluntad y actualizar un poco la carrera de AWS, tenemos cursos de mas de dos años de antigüedad, que en tecnología es un montón. incluso la consola de AWS cambio mucho.

Se puede decir que se usa k8s como un sistema de integración continua?

Que otras herramientas están disponibles para administrar kubernetes?

gracias 😃

Hay un software open source llamado rancher para administrar kubernetes es mas facil de usar

skip

También es bueno saber que para correr kubernetes en nuestro equipo personal con motivos de aprendizaje están las opciones de Microk8s y minikube, entre otros.
Y pues estas versiones están adecuadas para funcionar con recursos de un equipo personal que son muy limitadas en comparación a EKS. GKE o cualquier servidor On-premise.

Este articulo ya esta algo desfasado, ya que AWS nos provee de **eksctl **basado en kops