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
  • 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!!!