Habilita las cuentas de servicio y los servicios de Google

Además de cumplir los requisitos previos de instalación, hardware y sistema operativo, debes configurar y configurar los proyectos de Google Cloud, las API y las cuentas de servicio para ejecutar clústeres de Anthos en equipos físicos.

Ten en cuenta que el comando de bmctl puede habilitar de manera automática cuentas de servicio y API 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.

Habilitando API

Para habilitar API en tu proyecto, se debe asignar uno de los siguientes roles a tu cuenta: roles/owner, roles/editor o roles/serviceusage.serviceUsageAdmin.

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

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

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

Debes tener las funciones owner o editor en tu proyecto para los clústeres de Anthos en equipos físicos.

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

Configura las cuentas de servicio de forma manual

El comando bmctl de clústeres de Anthos en equipos físicos puede configurar automáticamente cuentas de servicio y API de Google 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.

Los clústeres de Anthos en equipos físicos conectan 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 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 supervisión de registros: 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 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 \
        cloudresourcemanager.googleapis.com \
        anthos.googleapis.com
  4. Crea la cuenta de servicio agente de Connect con la función necesaria y descargue el archivo de claves. En estos pasos, se crea el archivo de claves connect-agent.json en el directorio baremetal:
    1. Crear cuenta de servicio:
    2. gcloud iam service-accounts create connect-agent-svc-account --project=PROJECT_ID
    3. Otorga la función gkehub.connect:
    4. gcloud projects add-iam-policy-binding  PROJECT_ID \
          --member="serviceAccount:connect-agent-svc-account@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=connect-agent-svc-account@PROJECT_ID.iam.gserviceaccount.com
      
  5. Crea la cuenta de servicio de registro de conexión con la función necesaria y descarga el archivo de claves. Estos pasos crean el archivo de claves connect-register.json en el directorio baremetal:
    1. Crear cuenta de servicio:
    2. gcloud iam service-accounts create connect-register-svc-account \
          --project=PROJECT_ID
    3. Otorga la función gkehub.admin:
    4. gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:connect-register-svc-account@PROJECT_ID.iam.gserviceaccount.com" \
          --role=roles/gkehub.admin
    5. Descarga el archivo de claves JSON de la cuenta de servicio:
    6. gcloud iam service-accounts keys create connect-register.json \
          --project=PROJECT_ID \
          --iam-account=connect-register-svc-account@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 \
        serviceusage.googleapis.com \
        stackdriver.googleapis.com \
        monitoring.googleapis.com \
        logging.googleapis.com \
        opsconfigmonitoring.googleapis.com
    
  4. Crea la cuenta de servicio de supervisión de registros con las funciones necesarias y descarga el archivo de claves. En estos pasos, se crea el archivo de claves cloud-ops.json en el directorio baremetal:
    1. Crear cuenta de servicio
    2. gcloud iam service-accounts create logging-monitoring-svc-account \
          --project=PROJECT_ID
      
    3. Otorga la función logging.logWriter
    4. gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:logging-monitoring-svc-account@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:logging-monitoring-svc-account@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:logging-monitoring-svc-account@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:logging-monitoring-svc-account@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:logging-monitoring-svc-account@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 cloud-ops.json \
          --project=PROJECT_ID \
          --iam-account=logging-monitoring-svc-account@PROJECT_ID.iam.gserviceaccount.com
      

Configura una cuenta de servicio que pueda subirse al bucket de Cloud Storage

Para crear la cuenta de servicio y el archivo de claves, lo que permite que las instantáneas de los clústeres se suban de forma automática a los buckets de Cloud Storage, 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 \
        storage.googleapis.com
  4. Crea una cuenta de servicio que el comando de bmctl check cluster --snapshot usará para subir de forma automática una instantánea de clúster a un bucket de Cloud Storage:
  5. gcloud iam service-accounts create storage-agent-svc-account \
      --project=PROJECT_ID
  6. Otorga un rol storage.admin a la cuenta de servicio para que la cuenta de servicio pueda subir datos al bucket de Cloud Storage:
  7. gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:storage-agent-svc-account@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 storage-agent.json \
        --iam-account=storage-agent-svc-account@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.