Requisitos previos

Esta página describe los pasos que debe completar antes de instalar GKE en AWS.

Ambiente

Para instalar GKE en AWS, necesita un entorno donde pueda instalar y ejecutar diversas herramientas. Los siguientes pasos asumen que usa un shell bash en Linux o macOS. Si no tiene acceso a un entorno de shell bash, puede usar Cloud Shell .

Requisitos de AWS

Para completar este tema, necesita 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 sus clústeres de usuarios.

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

Configuración de AWS

Antes de empezar

Antes de completar esta sección:

  • Descargue e instale la AWS CLI . Confirme la instalación ejecutando aws --version . Si no encuentra el ejecutable, agregue la herramienta aws a su PATH .
  • Configure sus credenciales de AWS IAM y la región de AWS con aws configure .

Permisos de usuario administrador

GKE en 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, cree o acceda a las credenciales de IAM de AWS que cumplan con los requisitos .

Creación de una clave KMS

GKE en AWS requiere dos claves KMS de AWS. Las claves KMS cifran:

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

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

Línea de comandos

  1. Cree una clave KMS en su cuenta de AWS.

    aws kms create-key
    

    La salida incluye los metadatos de la clave.

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

  3. Cree un alias para la clave con aws kms create-alias . Un alias le permite administrar sus claves de AWS KMS por nombre.

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

Consola

  1. Inicie sesión en la consola de AWS .
  2. Navegue hasta KMS y seleccione Claves administradas por el cliente en la barra lateral.
  3. Haga clic en Crear clave .
  4. Deje las opciones predeterminadas seleccionadas.
  5. Una vez creada, seleccione la clave de la lista.
  6. Copiar el ARN de la clave.
  7. Repita los pasos anteriores para otra clave.

Google Cloud requisitos

Las restricciones de seguridad definidas por su organización podrían impedirle completar los siguientes pasos. Para obtener información sobre la solución de problemas, consulte Desarrollar aplicaciones en un entorno restringido. Google Cloud ambiente .

Antes de empezar

  • Asegúrese de tener permisos de propietario del proyecto en una cuenta de Google para habilitar las API en el Google Cloud Proyecto donde conecta su entorno de GKE en AWS. Utilice solo permisos de propietario para crear las cuentas de servicio de GKE en AWS en la siguiente sección.

  • Instalar la CLI de Google Cloud .

  • La API de GKE Enterprise debe estar habilitada para su Google Cloud proyecto. Habilitar esta API le da derecho a usar otras funciones de GKE Enterprise con su Google Cloud proyecto.

Cree sus cuentas de servicio de GKE en AWS

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

Nombre Roles Descripción
management-sa gkehub.admin Permisos para administrar membresías del Hub
hub-sa gkehub.connect Permiso para configurar la conexión entre sus clústeres de usuarios y Hub.
node-sa almacenamiento.objectViewer Permiso para acceder al Registro de Contenedores.

Línea de comandos

  1. Autenticarse con la CLI de Google Cloud.

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

    Se le solicitará dos veces que visite cloud.google.com y se autentique con su cuenta de Google.

  2. Establezca su Google Cloud proyecto como una variable de entorno y configure su project-id predeterminado con la CLI de gcloud.

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

    Reemplace el valor de project-id con su Google Cloud proyecto.

  3. Permitir Google Cloud API.

    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. Cree 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. Descargue las claves para 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. Otorgar roles 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
    
  7. Otorgar roles a la cuenta de servicio del concentrador.

    gcloud projects add-iam-policy-binding \
        $PROJECT_ID \
        --member serviceAccount:hub-sa@$PROJECT_ID.iam.gserviceaccount.com \
        --role roles/gkehub.connect
    
  8. Otorgar 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. Abrir el Google Cloud Página de la biblioteca API de consola .
  2. Seleccione su proyecto preferido del menú desplegable en la parte superior de la pantalla.
  3. Busque y habilite las siguientes API.

    • Anthos
    • Administrador de recursos en la nube
    • Almacenamiento en la nube
    • Registro en la nube
    • API JSON de Google Cloud Storage
    • Centro de GKE
    • API de conexión de GKE
    • Uso del servicio
    • Controlador de pila
    • Monitoreo de Stackdriver
  4. Abra la página Cuentas de servicio .

  5. A continuación, cree una cuenta de servicio y asigne roles para la cuenta de servicio management-sa .

    1. Haga clic en Crear cuenta de servicio .
    2. Nombre la cuenta "management-sa" y haga clic en "Crear" . Aparecerá la pantalla "Otorgar acceso al proyecto a esta cuenta de servicio" .
    3. Agregue los roles de administrador de GKE HUB.
    4. Haga clic en Continuar . Aparecerá la pantalla "Otorgar acceso a los usuarios a esta cuenta de servicio" .
    5. Haga clic en Listo . Aparecerá la pantalla "Cuentas de servicio para el proyecto" .
    6. Busque la fila que contiene el correo electrónico de su cuenta de servicio, management-sa@ project_id .iam.gserviceaccount.com .
    7. Haga clic en el menú de acción para la cuenta de servicio y seleccione Administrar claves .
    8. Haga clic en el menú desplegable Agregar clave .
    9. Haga clic en Crear nueva clave .
    10. Seleccione JSON como tipo de clave y haga clic en Crear . Su navegador descargará la clave de la cuenta de servicio.
    11. Cambie el nombre del archivo management-key.json .
  6. A continuación, cree una cuenta de servicio y asigne roles para la cuenta de servicio hub-sa .

    1. Haga clic en Crear cuenta de servicio .
    2. Nombre la cuenta "hub-sa" y haga clic en "Crear" . Aparecerá la pantalla "Otorgar acceso al proyecto a esta cuenta de servicio" .
    3. Agregue el rol de agente de conexión de GKE Hub.
    4. Haga clic en Continuar . Aparecerá la pantalla "Otorgar acceso a los usuarios a esta cuenta de servicio" .
    5. Haga clic en Listo . Aparecerá la pantalla "Cuentas de servicio para el proyecto" .
    6. Busque la fila que contiene el correo electrónico de su cuenta de servicio, hub-sa@ project_id .iam.gserviceaccount.com .
    7. Haga clic en el menú de acción para la cuenta de servicio y seleccione Administrar claves .
    8. Haga clic en el menú desplegable Agregar clave .
    9. Haga clic en Crear nueva clave .
    10. Seleccione JSON como tipo de clave y haga clic en Crear . Su navegador descargará la clave de la cuenta de servicio.
    11. Cambie el nombre del archivo hub-key.json .
  7. A continuación, cree una cuenta de servicio y asigne roles para la cuenta de servicio node-sa .

    1. Haga clic en Crear cuenta de servicio .
    2. Nombre la cuenta node-sa y haga clic en Crear . Aparecerá la pantalla "Otorgar acceso al proyecto a esta cuenta de servicio" .
    3. Agregue la función de Visor de objetos de almacenamiento.
    4. Haga clic en Listo . Aparecerá la pantalla "Cuentas de servicio para el proyecto" .
    5. Encuentre la fila que contiene el correo electrónico de su cuenta de servicio, node-sa@ project_id .iam.gserviceaccount.com .
    6. Haga clic en el menú de acción para la cuenta de servicio y seleccione Administrar claves .
    7. Haga clic en el menú desplegable Agregar clave .
    8. Haga clic en Crear nueva clave .
    9. Seleccione JSON como tipo de clave y haga clic en Crear . Su navegador descargará la clave de la cuenta de servicio.
    10. Cambie 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. Se utiliza para crear la configuración e instalar un servicio de administración . La versión más reciente de anthos-gke anthos-gke aws-1.14.1-gke.0.

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

  1. Descargue el 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. Actualice los permisos de anthos-gke y cópielo a /usr/local/bin .

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

    anthos-gke version
    

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

Para usar la herramienta de línea de comandos anthos-gke , el usuario que ejecuta el comando debe tener los roles ServiceUsageViewer y StorageAdmin. Para agregar los roles a su entidad de seguridad de IAM, ejecute 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

Reemplace lo siguiente:

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

Terraformar

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

GKE en AWS requiere una versión de Terraform superior a la 0.14.3. Puede comprobar su versión de Terraform con el siguiente comando:

terraform version

Si no tiene la versión v0.14.3 o superior, descargue e instale Terraform antes de crear un servicio de administración.

Actualización de Terraform

Para actualizar Terraform después de instalar GKE en AWS, debe actualizar su binario de Terraform a través de cada versión secundaria en orden.

Por ejemplo, si desea actualizar Terraform de la versión 0.12.x a la 0.14.x, debe instalar temporalmente la versión 0.13.x. Después de instalar la versión 0.13.x, ejecute anthos-gke aws management init y anthos-gke aws management apply . GKE en AWS actualiza su configuración. A continuación, puede actualizar a la versión 0.14.x.

Kubernetes

GKE en AWS requiere la versión 1.17 o superior kubectl . Puede comprobar su versión de kubectl ejecutando:

kubectl version --client -o yaml | grep gitVersion

Si no tiene 1.17 o superior, instale una versión más nueva de kubectl .

¿Qué sigue?