Configura recursos de Google Cloud

Además de cumplir con los requisitos previos de instalación, hardware y sistema operativo, debes configurar proyectos, APIs y cuentas de servicio de Google Cloud para ejecutar GKE en Bare Metal.

Ten en cuenta que el comando de bmctl puede habilitar de manera automática cuentas de servicio y APIs durante la creación del clúster, pero también puedes configurar estos servicios de forma manual para un control más preciso de las operaciones.

Antes de comenzar

Crea un proyecto de Google Cloud y una cuenta de facturación.

Durante la instalación, debes proporcionar las siguientes credenciales:

  • Las claves SSH privadas necesarias para acceder a las máquinas de nodo del clúster
  • Si no usas root, el nombre de acceso de la máquina del nodo del clúster

Asegúrate de tener todas las credenciales necesarias antes de intentar instalar GKE en Bare Metal.

Accede a gcloud

  1. Accede a gcloud como un usuario con el acceso gcloud auth application-default.
  2. gcloud auth application-default login
    
    Debes tener una función de editor o propietario de proyecto para usar las funciones de habilitación automática de la API y de creación de cuentas de servicio, que se describen a continuación. También puedes agregar las siguientes funciones de IAM al usuario:
    • Administrador de cuenta de servicio
    • Administrador de clave de cuenta de servicio
    • Administrador de IAM de proyecto
    • Lector de Compute
    • Administrador de Service Usage
    De manera alternativa, si ya tienes una cuenta de servicio con esas funciones, ejecuta el siguiente comando:
    export GOOGLE_APPLICATION_CREDENTIALS=JSON_KEY_FILE
    
    JSON_KEY_FILE especifica la ruta al archivo de claves JSON de tu cuenta de servicio.
  3. Obtén tu ID del proyecto de Google Cloud para usarlo con la creación del clúster:
  4. export CLOUD_PROJECT_ID=$(gcloud config get-value project)
    

Configura el ID y los roles del proyecto de Google Cloud predeterminados

Puedes configurar tu project id predeterminado además de configurar las cuentas de servicio.

Debes tener funciones owner o editor en tu proyecto para GKE en Bare Metal.

Para configurar el proyecto predeterminado, ejecuta el siguiente comando y reemplaza PROJECT_ID por tu ID del proyecto de Google Cloud:

gcloud config set project PROJECT_ID

Habilita las APIs

Antes de instalar GKE en Bare Metal, debes habilitar varias APIs en tu proyecto de Google Cloud asociado. Para habilitar las API en tu proyecto, debes tener una de las siguientes funciones en el proyecto de Google Cloud: roles/owner, roles/editor o roles/serviceusage.serviceUsageAdmin.

Para obtener información adicional, consulta Otorga un solo rol.

Una vez que tengas los permisos de IAM necesarios, habilita las siguientes APIs:

  • anthos.googleapis.com
  • anthosaudit.googleapis.com
  • anthosgke.googleapis.com
  • cloudresourcemanager.googleapis.com
  • connectgateway.googleapis.com
  • container.googleapis.com
  • gkeconnect.googleapis.com
  • gkehub.googleapis.com
  • iam.googleapis.com
  • logging.googleapis.com
  • monitoring.googleapis.com
  • opsconfigmonitoring.googleapis.com
  • serviceusage.googleapis.com
  • stackdriver.googleapis.com

También puedes usar la herramienta bmctl para habilitar estos servicios.

Configura las cuentas de servicio de forma manual

El comando bmctl de GKE en Bare Metal puede configurar cuentas de servicio y APIs de Google automáticamente cuando creas clústeres.

Sin embargo, para tener más control sobre tu sistema u optimizar la creación de clústeres con un conjunto predeterminado de servicios, cuentas y proyectos, puedes configurar estos servicios de forma manual.

En entornos de producción, debes crear cuentas de servicio independientes para diferentes propósitos. GKE en Bare Metal necesita los siguientes tipos de cuentas de servicio de Google Cloud según su propósito:

  • Para acceder a Container Registry (gcr.io), no se necesita un rol especial.
  • Para registrar un clúster en una flota, otorga el rol de IAM roles/gkehub.admin a la cuenta de servicio en tu proyecto de Google Cloud.
  • Para conectarte a flotas, otorga el rol de IAM roles/gkehub.connect a la cuenta de servicio de tu proyecto de Google Cloud.
  • Para enviar registros y métricas al conjunto de operaciones de Google Cloud, otorga los siguientes roles de IAM a la cuenta de servicio de tu proyecto de Google Cloud:

    • roles/logging.logWriter
    • roles/monitoring.metricWriter
    • roles/stackdriver.resourceMetadata.writer
    • roles/monitoring.dashboardEditor
    • roles/opsconfigmonitoring.resourceMetadata.writer

GKE en Bare Metal conecta tus clústeres a Google Cloud. Esta conexión habilita la siguiente función:

  • Conéctate para conectar tu clúster de equipos físicos a Google Cloud. Esto permite el acceso al clúster y a las funciones de administración de cargas de trabajo, incluida una interfaz de usuario unificada, la consola de Cloud, para interactuar con el clúster.
  • Logging y Monitoring para ver los registros y las métricas del clúster en la consola de Cloud.
  • Cargas automáticas de instantáneas del clúster en los buckets de Cloud Storage.

El proceso para configurar el acceso de forma manual incluye lo siguiente:

  • Habilita los servicios de Google necesarios en tu proyecto de Cloud.
  • Crea las siguientes cuentas de servicio con las funciones necesarias:
    • Cuenta de servicio de gcr: GKE on Bare Metal usa esta cuenta de servicio para descargar imágenes de contenedor desde Container Registry.
    • Cuenta de servicio del agente de conexión: Connect usa esta cuenta de servicio para mantener una conexión entre tu clúster y Google Cloud.
    • Cuenta de servicio de registro de Connect: Connect usa esta cuenta de servicio para registrar tus clústeres con Google Cloud.
    • Cuenta de servicio de cloud-ops: Connect usa esta cuenta de servicio para exportar registros y métricas de clústeres a Logging y Monitoring.
    • Cuenta de servicio del agente de almacenamiento: bmctl usa esta cuenta de servicio para almacenar de forma automática las instantáneas de los clústeres en Cloud Storage.

  • Descargar los archivos de claves JSON para cada cuenta de servicio

Luego, agregas referencias a los archivos de claves JSON a los archivos de configuración de clúster adecuados. Consulta Crea clústeres: descripción general para obtener más información.

Configura una cuenta de servicio para extraer imágenes de contenedor

Si deseas crear la cuenta de servicio y el archivo de claves para extraer imágenes de contenedor de GKE en Bare Metal, sigue estos pasos:

  1. Asegúrate de estar en el directorio baremetal.

  2. Crea la cuenta de servicio anthos-baremetal-gcr con el rol necesario y descarga el archivo de claves.

    En estos pasos, se crea el archivo de claves anthos-baremetal-gcr.json en el directorio baremetal:

    1. Cree la cuenta de servicio:

      gcloud iam service-accounts create anthos-baremetal-gcr --project=PROJECT_ID
      
    2. Descarga el archivo de claves JSON de la cuenta de servicio:

      gcloud iam service-accounts keys create anthos-baremetal-gcr.json \
          --project=PROJECT_ID \
          --iam-account=anthos-baremetal-gcr@PROJECT_ID.iam.gserviceaccount.com
      

Configura cuentas de servicio para usar con Connect

Para crear las cuentas de servicio y los archivos de claves, haz lo siguiente:

  1. Asegúrate de estar en el directorio baremetal.
  2. Habilita los servicios de Google necesarios en tu proyecto de Cloud:
  3. gcloud services enable --project=PROJECT_ID \
        gkeconnect.googleapis.com \
        gkehub.googleapis.com \
        connectgateway.googleapis.com \
        cloudresourcemanager.googleapis.com \
        anthos.googleapis.com
  4. Crea la cuenta de servicio anthos-baremetal-connect con el rol necesario y descarga el archivo de claves. En estos pasos, se crea el archivo de claves anthos-baremetal-connect.json en el directorio baremetal:
    1. Crear cuenta de servicio:
    2. gcloud iam service-accounts create anthos-baremetal-connect --project=PROJECT_ID
    3. Otorga la función gkehub.connect:
    4. gcloud projects add-iam-policy-binding  PROJECT_ID \
          --member="serviceAccount:anthos-baremetal-connect@PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/gkehub.connect"
    5. Descarga el archivo de claves JSON de la cuenta de servicio:
    6. gcloud iam service-accounts keys create connect-agent.json \
          --project=PROJECT_ID \
          --iam-account=anthos-baremetal-connect@PROJECT_ID.iam.gserviceaccount.com
      
  5. Crea la cuenta de servicio anthos-baremetal-register con la función necesaria y descarga el archivo de claves. En estos pasos, se crea el archivo de claves anthos-baremetal-register.json en el directorio baremetal:
    1. Crear cuenta de servicio:
    2. gcloud iam service-accounts create anthos-baremetal-register \
          --project=PROJECT_ID
    3. Otorga la función gkehub.admin:
    4. gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:anthos-baremetal-register@PROJECT_ID.iam.gserviceaccount.com" \
          --role=roles/gkehub.admin
    5. Descarga el archivo de claves JSON de la cuenta de servicio:
    6. anthos-baremetal-register
      gcloud iam service-accounts keys create connect-register.json \
          --project=PROJECT_ID \
          --iam-account=anthos-baremetal-register@PROJECT_ID.iam.gserviceaccount.com
      

Configura una cuenta de servicio para auditar registros y supervisar proyectos

Para crear la cuenta de servicio y el archivo de claves para Logging y Monitoring, sigue estos pasos:

  1. Asegúrate de estar en el directorio baremetal.
  2. Habilita los servicios de Google necesarios en tu proyecto de Cloud:
  3. gcloud services enable --project PROJECT_ID \
        anthos.googleapis.com \
        anthosaudit.googleapis.com \
        anthosgke.googleapis.com \
        cloudresourcemanager.googleapis.com \
        gkeconnect.googleapis.com \
        gkehub.googleapis.com \
        logging.googleapis.com \
        monitoring.googleapis.com \
        opsconfigmonitoring.googleapis.com \
        serviceusage.googleapis.com \
        stackdriver.googleapis.com
    
  4. Crea la cuenta de servicio anthos-baremetal-cloud-ops con los roles necesarios y descarga el archivo de claves. En estos pasos, se crea el archivo de claves anthos-baremetal-cloud-ops.json en el directorio baremetal:
    1. Crear cuenta de servicio
    2. gcloud iam service-accounts create anthos-baremetal-cloud-ops \
          --project=PROJECT_ID
      
    3. Otorga la función logging.logWriter
    4. gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/logging.logWriter"
      
    5. Otorga la función monitoring.metricWriter
    6. gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/monitoring.metricWriter"
      
    7. Otorga la función roles/stackdriver.resourceMetadata.writer
    8. gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/stackdriver.resourceMetadata.writer"
      
    9. Otorga la función roles/opsconfigmonitoring.resourceMetadata.writer role
    10. gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/opsconfigmonitoring.resourceMetadata.writer"
      
    11. Otorga la función roles/monitoring.dashboardEditor
    12. gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/monitoring.dashboardEditor"
      
    13. Descarga el archivo de claves JSON de la cuenta de servicio:
    14. gcloud iam service-accounts keys create anthos-baremetal-cloud-ops.json \
          --project=PROJECT_ID \
          --iam-account=anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com
      

Configura una cuenta de servicio que pueda acceder a un bucket de Cloud Storage

Usa una cuenta de servicio y un archivo de claves para acceder a Cloud Storage. Puedes usar esta cuenta de servicio para permitir que las instantáneas de los clústeres se suban de forma automática a los buckets de Cloud Storage o para importar imágenes de máquina virtual (VM) de buckets de Cloud Storage a fin de usarlas con el entorno de ejecución de VM en Google Distributed Cloud.

Para crear la cuenta de servicio y el archivo de claves, completa los siguientes pasos:

  1. Asegúrate de estar en el directorio baremetal.
  2. Habilita los servicios de Google necesarios en tu proyecto de Cloud:
  3. gcloud services enable --project=PROJECT_ID \
        storage.googleapis.com
  4. Crea una cuenta de servicio que tu clúster pueda usar para acceder a los buckets de Cloud Storage:
  5. gcloud iam service-accounts create anthos-baremetal-storage \
        --project=PROJECT_ID
  6. Otorga un rol storage.admin a la cuenta de servicio para que esta pueda subir datos a un bucket de Cloud Storage o importar imágenes de VM:
  7. gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:anthos-baremetal-storage@PROJECT_ID.iam.gserviceaccount.com" \
        --role="roles/storage.admin"
    
  8. Descarga el archivo de claves JSON de la cuenta de servicio:
  9. gcloud iam service-accounts keys create anthos-baremetal-storage.json \
        --iam-account=anthos-baremetal-storage@PROJECT_ID.iam.gserviceaccount.com

Si deseas obtener más información para crear instantáneas de clúster y subirlas automáticamente a un bucket de Cloud Storage, consulta Crea instantáneas de diagnóstico de problemas de clústeres.

Si quieres obtener más información a fin de importar imágenes de VM desde Cloud Storage, consulta Crea y usa credenciales para importar imágenes desde Cloud Storage para el entorno de ejecución de VM en Google Distributed Cloud.