Requisitos previos

En esta página se describen los pasos que debe completar antes de instalar GKE en AWS.

Entorno

Para instalar GKE en AWS, necesitas un entorno en el que puedas instalar y ejecutar varias herramientas. En los siguientes pasos se da por hecho que usas un shell bash en Linux o macOS. Si no tienes acceso a un entorno de shell bash, 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 tus clústeres de usuario.

Para obtener más información sobre otros recursos de AWS obligatorios, consulta los requisitos.

Configurar AWS

Antes de empezar

Antes de completar esta sección:

  • Descarga e instala la CLI de AWS. Confirma la instalación ejecutando aws --version. Si no se encuentra el archivo ejecutable, añade la herramienta aws a tu PATH.
  • Configure sus credenciales de gestión de identidades y accesos de AWS y su región de AWS con aws configure.

Permisos de usuario administrador

GKE en AWS requiere que el creador de un servicio de gestión tenga determinados permisos. Antes de crear un servicio de gestión o clústeres de usuarios, crea o consigue acceso a las credenciales de gestión de identidades y accesos de AWS que cumplan los requisitos.

Crear una clave de KMS

GKE on AWS requiere dos claves de KMS de AWS. Las claves de KMS encriptan lo siguiente:

  • Datos durante el proceso de instalación con cifrado de envolvente.
  • Secretos de la capa de aplicación en tus clústeres de usuarios.

Sigue los pasos que se indican 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
    

    El resultado incluye los metadatos de la clave.

  2. En el resultado del comando anterior, copia el nombre de recurso de Amazon (ARN) de la clave del campo Arn. Por ejemplo, una clave de la región us-west-2 tiene el ARN arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab.

  3. Crea un alias para la clave con aws kms create-alias. Un alias te permite gestionar tus claves de KMS de AWS por nombre.

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

Consola

  1. Inicia sesión en la consola de AWS.
  2. Ve a KMS y selecciona Claves gestionadas por el cliente en la barra lateral.
  3. Haz clic en Crear clave.
  4. Deja seleccionadas las opciones predeterminadas.
  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.

Google Cloud

Es posible que las restricciones de seguridad definidas por tu organización te impidan completar los siguientes pasos. Para obtener información sobre cómo solucionar problemas, consulta el artículo Desarrollar aplicaciones en un entorno limitado Google Cloud .

Antes de empezar

  • Asegúrate de tener permisos de propietario de proyecto en una cuenta de Google para habilitar las APIs en el proyecto Google Cloud donde conectes tu entorno de GKE en AWS. Solo usas los permisos de propietario para crear las cuentas de servicio de GKE en AWS de la siguiente sección.

  • Instala Google Cloud CLI.

  • La API de Anthos debe estar habilitada en tu Google Cloud proyecto. Al habilitar esta API, podrás usar otras funciones de Google Kubernetes Engine con tu Google Cloud proyecto.

Crear cuentas de servicio de GKE on AWS

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

Nombre Roles Descripción
management-sa gkehub.admin Permisos para gestionar miembros del centro
hub-sa gkehub.connect Permiso para configurar la conexión entre tus clústeres de usuarios y el centro de control.
node-sa storage.objectViewer Permiso para acceder a Container Registry.

Línea de comandos

  1. Autentícate con Google Cloud CLI.

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

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

  2. Define tu Google Cloud proyecto como variable de entorno y configura tuproject-idpredeterminado con gcloud CLI.

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

    Sustituye el valor de project-id por tu Google Cloud proyecto.

  3. Habilita las Google Cloud APIs.

    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 ejecutando 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 de cada cuenta de servicio con gcloud ejecutando 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. Asigna roles a la cuenta de servicio de gestión.

    gcloud projects add-iam-policy-binding \
        $PROJECT_ID \
        --member serviceAccount:management-sa@$PROJECT_ID.iam.gserviceaccount.com \
        --role roles/gkehub.admin
    
  7. Asigna roles a la cuenta de servicio del centro de control.

    gcloud projects add-iam-policy-binding \
        $PROJECT_ID \
        --member serviceAccount:hub-sa@$PROJECT_ID.iam.gserviceaccount.com \
        --role roles/gkehub.connect
    
  8. Asigna roles 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
    

Consola

  1. Abre la Google Cloud página de la biblioteca de APIs de la consola.
  2. Selecciona el proyecto que prefieras en el menú desplegable de la parte superior de la pantalla.
  3. Busca y habilita las siguientes APIs.

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

  5. A continuación, crea una cuenta de servicio y asigna roles a la cuenta de servicio de management-sa.

    1. Haz clic en Crear cuenta de servicio.
    2. Asigna un nombre a la cuenta management-sa y haz clic en Crear. Aparecerá la pantalla Conceder a esta cuenta de servicio acceso al proyecto.
    3. Añade los roles de administrador de GKE Hub.
    4. Haz clic en Continuar. Aparecerá la pantalla Conceder a los usuarios acceso a esta cuenta de servicio.
    5. Haz clic en Listo. Aparecerá la pantalla Cuentas de servicio del proyecto.
    6. Busca la fila que contenga el correo de tu cuenta de servicio. management-sa@project_id.iam.gserviceaccount.com
    7. Haz clic en el menú de acciones de la cuenta de servicio y selecciona Gestionar claves.
    8. Haz clic en el menú desplegable Añadir clave.
    9. Haz clic en Crear clave.
    10. Selecciona JSON como tipo de clave y haz clic en Crear. Tu navegador descargará la clave de la cuenta de servicio.
    11. Cambia el nombre del archivo management-key.json.
  6. A continuación, crea una cuenta de servicio y asigna roles a la cuenta de servicio de hub-sa.

    1. Haz clic en Crear cuenta de servicio.
    2. Ponle el nombre "hub-sa" a la cuenta y haz clic en Crear. Aparecerá la pantalla Conceder a esta cuenta de servicio acceso al proyecto.
    3. Añade el rol Agente de conexión de GKE Hub.
    4. Haz clic en Continuar. Aparecerá la pantalla Conceder a los usuarios acceso a esta cuenta de servicio.
    5. Haz clic en Listo. Aparecerá la pantalla Cuentas de servicio del proyecto.
    6. Busca la fila que contenga el correo de tu cuenta de servicio. hub-sa@project_id.iam.gserviceaccount.com
    7. Haz clic en el menú de acciones de la cuenta de servicio y selecciona Gestionar claves.
    8. Haz clic en el menú desplegable Añadir clave.
    9. Haz clic en Crear clave.
    10. Selecciona JSON como tipo de clave y haz clic en Crear. Tu navegador descargará la clave de la cuenta de servicio.
    11. Cambia el nombre del archivo hub-key.json.
  7. A continuación, crea una cuenta de servicio y asigna roles a la cuenta de servicio de node-sa.

    1. Haz clic en Crear cuenta de servicio.
    2. Nombra el nodo de la cuenta como "node-sa" y haz clic en Crear. Aparecerá la pantalla Conceder a esta cuenta de servicio acceso al proyecto.
    3. Añade el rol Visor de objetos de Storage.
    4. Haz clic en Listo. Aparecerá la pantalla Cuentas de servicio del proyecto.
    5. Busca la fila que contenga el correo de tu cuenta de servicio. node-sa@project_id.iam.gserviceaccount.com
    6. Haz clic en el menú de acciones de la cuenta de servicio y selecciona Gestionar claves.
    7. Haz clic en el menú desplegable Añadir clave.
    8. Haz clic en Crear clave.
    9. Selecciona JSON como tipo de clave y haz clic en Crear. Tu navegador descargará la clave de la cuenta de servicio.
    10. Cambia el nombre del archivo node-key.json.

Herramienta de línea de comandos anthos-gke

anthos-gke es una herramienta de línea de comandos para GKE en AWS. Puedes usar anthos-gke para crear una configuración y instalar un servicio de gestión. La última versión de anthos-gke es aws-1.14.1-gke.0.

La herramienta de línea de comandos anthos-gke solo es compatible con Linux y macOS.

  1. Descarga el archivo binario de Cloud Storage.

    Linux

    gcloud storage cp gs://gke-multi-cloud-release/aws/aws-1.14.1-gke.0/bin/linux/amd64/anthos-gke .
    

    macOS

    gcloud storage cp gs://gke-multi-cloud-release/aws/aws-1.14.1-gke.0/bin/darwin/amd64/anthos-gke .
    
  2. Actualiza los permisos de anthos-gke y cópialos en /usr/local/bin.

    chmod 755 anthos-gke
    sudo mv anthos-gke /usr/local/bin
    
  3. Comprueba que la versión sea aws-1.14.1-gke.0.

    anthos-gke version
    

Permisos de la herramienta de línea de comandos anthos-gke

Para usar la herramienta de línea de comandos anthos-gke, el usuario que ejecute el comando debe tener los roles ServiceUsageViewer y StorageAdmin. Para añadir los roles a tu principal de IAM, ejecuta estos comandos:

gcloud projects add-iam-policy-binding PROJECT_NAME \
    --member user:USER_NAME \
    --role roles/serviceusage.serviceUsageViewer
gcloud projects add-iam-policy-binding PROJECT_NAME \
    --member user:USER_NAME \
    --role roles/storage.admin

Haz los cambios siguientes:

  • PROJECT_NAME: tu Google Cloud proyecto
  • USER_NAME: el nombre de usuario que ejecuta la herramienta de línea de comandos anthos-gke. Si usas una cuenta de servicio, utiliza serviceAccount:SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com

Terraform

La herramienta anthos-gke genera archivos de configuración de Terraform y llama a la herramienta de línea de comandos terraform.

GKE on AWS requiere una versión de Terraform superior a la 0.14.3. Puedes consultar tu versión de Terraform con el siguiente comando:

terraform version

Si no tienes la versión 0.14.3 o una posterior, descarga e instala Terraform antes de crear un servicio de gestión.

Actualizar Terraform

Para actualizar Terraform después de instalar GKE en AWS, debes actualizar el archivo binario de Terraform a cada versión secundaria en orden.

Por ejemplo, si quieres actualizar Terraform de la versión 0.12.x a la 0.14.x, debes instalar la versión 0.13.x temporalmente. Después de instalar la versión 0.13.x, ejecuta anthos-gke aws management init y anthos-gke aws management apply. GKE on AWS actualiza tu configuración. Después, puedes actualizar a la versión 0.14.x.

Kubernetes

GKE on AWS requiere la versión 1.17 o posterior de kubectl. Puedes comprobar tu versión de kubectl ejecutando el siguiente comando:

kubectl version --client -o yaml | grep gitVersion

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

Siguientes pasos