El 2 de noviembre, se lanzó una nueva versión de GKE en AWS. Consulta las notas de la versión para obtener más información.

Requisitos previos

En esta página, se describen los requisitos que debes completar antes de instalar GKE on AWS.

Entorno

En las siguientes instrucciones, se asume que usas un shell Bash en Linux o macOS. Si no tienes acceso a un entorno de shell regular, puedes usar Cloud Shell.

Requisitos de AWS

Para completar este tema, necesitas una cuenta de AWS con acceso a la línea de comandos y dos claves de AWS Key Management Service (KMS) en la misma región que tu GKE en el clúster de AWS.

Para obtener más información sobre otros recursos necesarios de AWS, consulta Requisitos.

Configurar AWS

Antes de comenzar

Antes de completar esta sección, haz lo siguiente:

  • Descarga y, luego, instala la CLI de AWS. Para confirmar la instalación, ejecuta aws --version. Si no se encuentra el ejecutable, agrega la herramienta aws a PATH.
  • Configura tus credenciales de IAM de AWS y la región de AWS con aws configure.

Permisos del usuario administrador

GKE on AWS requiere que el creador de un servicio de administración tenga ciertos permisos. Antes de crear un servicio de administración o clústeres de usuarios, crea o consigue acceso a credenciales de IAM de AWS que cumplan con los requisitos.

Crea una clave KMS

GKE on AWS requiere dos claves del servicio de administración de claves (KMS) de AWS. Las claves de KMS encriptan los siguientes elementos:

  • Los datos durante el proceso de instalación con la encriptación de sobre.
  • Los secretos de la capa de aplicación en los clústeres de GKE on AWS.

Sigue los pasos a continuación para crear dos claves de KMS de AWS.

Línea de comandos

  1. Crea una clave de KMS en tu cuenta de AWS.

    aws kms create-key
    

    En el resultado se incluyen los metadatos de la clave.

  2. En el resultado del comando anterior, copia el nombre del recurso de Amazon (ARN) de la clave del campo Arn.

  3. Crea un alias para la clave con aws kms create-alias. Un alias te permite hacer un seguimiento de las claves de KMS de AWS.

    aws kms create-alias \
        --alias-name=alias/key-name \
        --target-key-id=key-arn
    
  4. Repite los pasos anteriores para otra clave.

Console

  1. Acceda a la consola de AWS.
  2. Navega a KMS y selecciona Claves administradas por el cliente en la barra lateral.
  3. Haz clic en Crear clave.
  4. Deje las opciones predeterminadas seleccionadas.
  5. Una vez creada, selecciona la clave de la lista.
  6. Copia el ARN de la clave.
  7. Repite los pasos anteriores para otra clave.

Requisitos de Google Cloud

Antes de comenzar

  • Asegúrate de tener permisos de propietario del proyecto en una cuenta de Google para habilitar las API en el proyecto de Google Cloud en el que conectas tus componentes de GKE on AWS.

  • Instala el SDK de Cloud.

  • La API de Anthos debe estar habilitada para tu proyecto de Google Cloud. Habilitar esta API te permite usar otras funciones de Anthos con el proyecto de Cloud.

Crea tus cuentas de servicio de GKE on AWS

En esta sección, debes crear tres cuentas de servicio y claves de IAM para GKE on AWS. Estas cuentas de servicio se describen en la siguiente lista:

Name Funciones Descripción
management-sa gkehub.admin,
serviceusage.serviceUsageViewer
Permisos para administrar membresías de Hub y verificar que las API de Google Cloud estén habilitadas.
hub-sa gkehub.connect Permiso para configurar la conexión entre tu clúster de GKE on AWS y Hub.
node-sa storage.objectViewer Permiso para acceder a Container Registry.

Línea de comandos

  1. Autentícate con la herramienta de línea de comandos de gcloud.

    gcloud auth login &&\
    gcloud auth application-default login
    

    Se te pedirá dos veces que visites cloud.google.com y te autentiques con tu cuenta de Google.

  2. Configura tu proyecto de Google Cloud como una variable de entorno y configura tu project-id predeterminado con la herramienta de gcloud.

    export PROJECT_ID=project-id
    
    gcloud config set project $PROJECT_ID
    

    Reemplaza el valor de project-id con tu proyecto de Google Cloud.

  3. Habilita las API de Google Cloud

    gcloud services enable anthos.googleapis.com
    gcloud services enable cloudresourcemanager.googleapis.com
    gcloud services enable gkehub.googleapis.com
    gcloud services enable gkeconnect.googleapis.com
    gcloud services enable logging.googleapis.com
    gcloud services enable monitoring.googleapis.com
    gcloud services enable serviceusage.googleapis.com
    gcloud services enable stackdriver.googleapis.com
    gcloud services enable storage-api.googleapis.com
    gcloud services enable storage-component.googleapis.com
    
  4. Crea las cuentas de servicio con gcloud mediante la ejecución de los siguientes comandos.

    gcloud iam service-accounts create management-sa
    gcloud iam service-accounts create hub-sa
    gcloud iam service-accounts create node-sa
    
  5. Descarga las claves para cada cuenta de servicio con gcloud mediante la ejecución de los siguientes comandos.

    gcloud iam service-accounts keys create management-key.json \
         --iam-account management-sa@$PROJECT_ID.iam.gserviceaccount.com
    gcloud iam service-accounts keys create hub-key.json \
         --iam-account hub-sa@$PROJECT_ID.iam.gserviceaccount.com
    gcloud iam service-accounts keys create node-key.json \
         --iam-account node-sa@$PROJECT_ID.iam.gserviceaccount.com
    
  6. Otorga funciones a la cuenta de servicio de administración.

    gcloud projects add-iam-policy-binding \
        $PROJECT_ID \
        --member serviceAccount:management-sa@$PROJECT_ID.iam.gserviceaccount.com \
        --role roles/gkehub.admin
    gcloud projects add-iam-policy-binding \
        $PROJECT_ID \
        --member serviceAccount:management-sa@$PROJECT_ID.iam.gserviceaccount.com \
        --role roles/serviceusage.serviceUsageViewer
    
  7. Otorga funciones a la cuenta de servicio de Hub.

    gcloud projects add-iam-policy-binding \
        $PROJECT_ID \
        --member serviceAccount:hub-sa@$PROJECT_ID.iam.gserviceaccount.com \
        --role roles/gkehub.connect
    
  8. Otorga funciones a la cuenta de servicio del nodo.

    gcloud projects add-iam-policy-binding \
          $PROJECT_ID \
          --member serviceAccount:node-sa@$PROJECT_ID.iam.gserviceaccount.com \
          --role roles/storage.objectViewer
    

Console

  1. Abre la página de la biblioteca de API de Google Cloud Console.
  2. Selecciona tu proyecto preferido en el menú desplegable en la parte superior de la pantalla.
  3. Busca y habilita las siguientes API.

    • Anthos
    • Cloud Resource Manager
    • Cloud Storage
    • Cloud Logging
    • API de Google Cloud Storage JSON
    • GKE Hub
    • API de GKE Connect
    • Service Usage
    • Stackdriver
    • Stackdriver Monitoring
  4. Abre la página Cuentas de servicio.

  5. A continuación, crea una cuenta de servicio y asígnale funciones para la cuenta de servicio management-sa.

    1. Haga clic en Crear cuenta de servicio.
    2. Asigna un nombre al SA de administración de la cuenta y haz clic en Crear. Aparecerá la pantalla Otorgar a esta cuenta de servicio acceso al proyecto.
    3. Agrega las funciones de administrador de GKE HUB, visualizador de Service Usage.
    4. Haga clic en Continuar. Aparecerá la pantalla Otorgar a los usuarios acceso a esta cuenta de servicio.
    5. Haz clic en Crear clave, guarda la clave en tu máquina local como management-key.json y haz clic en Listo.
  6. A continuación, crea una cuenta de servicio y asígnale funciones para la cuenta de servicio hub-sa.

    1. Haga clic en Crear cuenta de servicio.
    2. Asigna un nombre al SA de Hub de la cuenta y haz clic en Crear. Aparecerá la pantalla Otorgar a esta cuenta de servicio acceso al proyecto.
    3. Agrega la función de agente de conexión de Hub de GKE.
    4. Haga clic en Continuar. Aparecerá la pantalla Otorgar a los usuarios acceso a esta cuenta de servicio.
    5. Haz clic en Crear clave, guarda la clave en tu máquina local como hub-key.json y haz clic en Listo.
  7. A continuación, crea una cuenta de servicio y asígnale funciones para la cuenta de servicio node-sa.

    1. Haga clic en Crear cuenta de servicio.
    2. Asigna un nombre al SA del nodo de la cuenta y haz clic en Crear. Aparecerá la pantalla Otorgar a esta cuenta de servicio acceso al proyecto.
    3. Agrega la función Visualizador de objetos de almacenamiento.
    4. Haga clic en Continuar. Aparecerá la pantalla Otorgar a los usuarios acceso a esta cuenta de servicio.
    5. Haz clic en Crear clave, guarda la clave en tu máquina local como node-key.json y haz clic en Listo.

Herramienta de línea de comandos de Anthos GKE

anthos-gke es una herramienta de línea de comandos para GKE on AWS. Usa anthos-gke para crear una configuración que instale un servicio de administración. La versión más reciente de anthos-gke es aws-1.5.0-gke.6.

  1. Descarga el objeto binario desde Cloud Storage.

    Linux

    gsutil cp gs://gke-multi-cloud-release/aws/aws-1.5.0-gke.6/bin/linux/amd64/anthos-gke .
    

    macOS

    gsutil cp gs://gke-multi-cloud-release/aws/aws-1.5.0-gke.6/bin/darwin/amd64/anthos-gke .
    
  2. Actualiza los permisos de anthos-gke y cópialo en /usr/local/bin.

    chmod 755 anthos-gke
    sudo mv anthos-gke /usr/local/bin
    
  3. Confirma que la versión sea aws-1.5.0-gke.6.

    anthos-gke version
    

Terraform

GKE on AWS requiere Terraform v0.12.28 o una versión superior. Descarga e instala Terraform antes de comenzar.

La herramienta anthos-gke genera archivos de configuración de Terraform. La configuración es declarativa, se le puede realizar el control de versiones y puede auditarse.

Kubernetes

GKE on AWS requiere la versión 1.16 o una superior de kubectl. Para verificar tu versión de kubectl, ejecuta lo siguiente:

kubectl version --client -o yaml | grep gitVersion

Si no tienes la versión 1.16 o una superior, instala una versión más reciente de kubectl.

¿Qué sigue?