Buenos dias a todos! Luego de mucho tiempo sin publicar contenido, y de haber perdido accidentalmente el contenido de mi blog, es hora de volver a empezar! Y que mejor que hacerlo hablando de respaldos para ambientes Kubernetes utilizando Kasten by Veeam.
En esta ocasión, veremos como instalar Kasten K10 en un ambiente AWS Elastic Kubernetes Service (o simplemente EKS) utilizando usuarios y roles IAM para la instalación y autenticación de Kasten. Del mismo modo, la autenticación la haremos utilizando tokens generados por la herramienta AWS IAM Authenticator (https://docs.aws.amazon.com/eks/latest/userguide/install-aws-iam-authenticator.html).
El procedimiento lo podemos ver a través del siguiente video, mientras que todos los comandos requeridos los podemos ver a continuación:
- Creamos los componentes en AWS
- Creación de Policies en AWS IAM: https://docs.kasten.io/latest/install/aws/aws_permissions.html
- Crearemos 3 policies, una para cada servicio: AWS EBS, AWS S3 y para AWS RDS.
- Crearemos un rol en AWS IAM y le asignaremos las 3 politicas creadas previamente. Del mismo modo se configurará el rol para que pueda ser asumido por un usuario AWS IAM. https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html
- Crearemos un usuario AWS IAM sin privilegios excepto para asumir el rol creado previamente. https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_permissions-to-switch.html
- Creación de Policies en AWS IAM: https://docs.kasten.io/latest/install/aws/aws_permissions.html
- Revisamos y configuramos los pre-requisitos con los siguientes comandos.
- Verificamos que cumplimos pre-requisitos: curl https://docs.kasten.io/tools/k10_primer.sh | bash
- Añadimos el repositorio HELM para Kasten: helm repo add kasten https://charts.kasten.io/
- Creamos namespace para Kasten: kubectl create namespace kasten-io
- Instalamos Kasten con autenticación basada en Token y acceso via external gateway (explicado en detalle en el video)
- helm install k10 kasten/k10 –namespace=kasten-io –set externalGateway.create=true –set auth.tokenAuth.enabled=true –set secrets.awsAccessKeyId=”${AWS_ACCESS_KEY_ID}” –set secrets.awsSecretAccessKey=”${AWS_SECRET_ACCESS_KEY}” –set secrets.awsIamRole=”${AWS_IAM_ROLE_ARN}”
- Habilitamos OIDC en el cluster con el siguiente comando: eksctl utils associate-iam-oidc-provider –cluster pcerda-k10 –approve
- Obtenemos el ARN del role IAM que utilizaremos con el siguiente comando: aws iam get-role –role-name pcerda-k10 | grep Arn
- Editamos el ConfigMap de AWS con el siguiente comando: kubectl edit configmap aws-auth –namespace kube-system -oyaml
- Añadimos las siguientes lineas al ConfigMap:
– groups:
– k10:admins
rolearn: arn:aws:iam::33333333333:role/pcerda-k10
username: pcerda-k10
- Guardamos los cambios en el ConfigMap
- Creamos Cluster Role Bindings en Kubernetes para asignar el rol de k10-admin y de cluster-admin al grupo k10:admins (configurado previamente en el ConfigMap)
- kubectl create clusterrolebinding k10iamadmin –clusterrole=k10-admin –group=k10:admins
- kubectl create clusterrolebinding k10iamclusteradmin –clusterrole=cluster-admin –group=k10:admins
- Obtenemos el token para autenticarnos en Kasten utilizando AWS IAM Authenticator: aws-iam-authenticator token -i ${EKS_CLUSTER_NAME} –token-only –role arn:aws:iam::33333333333:role/pcerda-k10
- Y ya tenemos Kasten instalado!!!
En las proximas publicaciones veremos como realizar la configuración inicial y como proteger nuestras aplicaciones utilizando politicas. Gracias!!!
[…] proceso no es mucho más complejo que desplegar Kasten sobre plataformas de cloud gestionadas como AWS, Azure o GCP. Espero que les haya sido de utilidad, y nos vemos en otra […]
[…] ejemplo, en un entorno AWS EKS, cada app con acceso externo podria utilizar su propio Load Balancer, lo cual porsupuesto tiene un […]
[…] todos! Anteriormente hemos hablado de como instalar Kasten K10 en diversas infraestructuras como AWS EKS, Azure AKS, Google GKE, ya sea mediante autenticación basica o mediante tokens. En un entorno […]
[…] a todos! Hasta ahora hemos hablado de como instalar Kasten K10 en diversas infraestructuras como AWS EKS o Azure AKS, utilizando autenticación basada en token o utilizando Azure AD/OIDC. En esta […]
[…] Previamente hemos visto como desplegar Kasten K10 en multiples distribuciones de Kubernetes como AWS EKS, Azure AKS, Google GKE y OpenShift. Si contamos con multiples cluster de Kubernetes, significa […]