En esta página se describen los Google Cloud recursos que debes crear y configurar antes de crear clústeres.
Antes de empezar
Si no eres el propietario del proyecto, pide a uno que te conceda los siguientes roles de Gestión de Identidades y Accesos (IAM): Google Cloud
Rol Finalidad roles/compute.viewer Obligatorio: se necesita cuando bmctl
valida el campo clusterOperations.location en el archivo de configuración del clúster.roles/iam.serviceAccountAdmin Obligatorio: se necesita para crear las cuentas de servicio que requiere Google Distributed Cloud. roles/iam.securityAdmin Obligatorio: se necesita para conceder roles de gestión de identidades y accesos a las cuentas de servicio que requiere Google Distributed Cloud. roles/iam.serviceAccountKeyAdmin Obligatorio: se necesita para crear archivos de claves JSON para las cuentas de servicio que requiere Google Distributed Cloud. roles/serviceusage.serviceUsageAdmin Obligatorio: se necesita para habilitar las APIs de Google que requiere Google Distributed Cloud. roles/gkeonprem.admin Opcional: necesario si quieres crear clústeres con clientes de la API de GKE On-Prem o configurar un clúster para que lo gestione la API de GKE On-Prem. roles/gkehub.viewer
roles/container.viewerOpcional: es necesario si quieres acceder a las páginas de GKE en la Google Cloud consola. Para obtener información sobre cómo conceder los roles, consulta el artículo Gestionar acceso a proyectos, carpetas y organizaciones.
Habilitar APIs
Debes habilitar varias APIs de Google en tu Google Cloud proyecto asociado. Google Distributed Cloud usa las APIs al crear clústeres. Las APIs también son necesarias para mantener una conexión con Google Cloud. La conexión a Google Cloud permite que Google Distributed Cloud use Cloud Logging y Cloud Monitoring, así como funciones de flotas como Cloud Service Mesh, Config Sync, Policy Controller y Config Controller.
Si vas a usar la herramienta bmctl
para crear clústeres, puedes incluir la marca --enable-apis
al ejecutar bmctl create config
. De esta forma, bmctl
habilitará las APIs que se indican en el siguiente comando gcloud services enable
. Si vas a usar un cliente de la API de GKE On-Prem para crear un clúster de administrador o un clúster de usuario, debes habilitar las APIs antes de crear el clúster.
Para habilitar las APIs, ejecuta los siguientes comandos:
Inicia sesión en Google Cloud CLI:
gcloud auth login
Habilita las siguientes APIs:
gcloud services enable --project=PROJECT_ID \ anthos.googleapis.com \ anthosaudit.googleapis.com \ anthosgke.googleapis.com \ cloudresourcemanager.googleapis.com \ compute.googleapis.com \ connectgateway.googleapis.com \ container.googleapis.com \ gkeconnect.googleapis.com \ gkehub.googleapis.com \ gkeonprem.googleapis.com \ iam.googleapis.com \ kubernetesmetadata.googleapis.com \ logging.googleapis.com \ monitoring.googleapis.com \ opsconfigmonitoring.googleapis.com \ serviceusage.googleapis.com \ stackdriver.googleapis.com \ storage.googleapis.com
A excepción de
gkeonprem.googleapis.com
, estas APIs de Google son obligatorias para tu proyecto. Solo se requieren las dos APIs siguientes para la versión 1.29 y posteriores:compute.googleapis.com
kubernetesmetadata.googleapis.com
Si instalas tus clústeres detrás de un proxy, debes añadir muchas de estas APIs a la lista de conexiones permitidas. Para ver una lista de las APIs y los endpoints que debe añadir a la lista de permitidas, así como los motivos por los que debe permitir su acceso, consulte Instalar detrás de un proxy .
Para ver qué APIs y servicios están habilitados en tu proyecto, ejecuta el siguiente comando:
gcloud services list --project=PROJECT_ID \ --enabled
Configurar cuentas de servicio
Para usar las APIs de Google, Google Distributed Cloud requiere una cuenta de servicio configurada con roles de gestión de identidades y accesos (IAM) específicos en tu Google Cloud proyecto asociado. Como práctica recomendada, debes crear cuentas de servicio independientes para diferentes fines, sobre todo en entornos de producción.
Si vas a usar la herramienta bmctl
para crear clústeres, puedes incluir la marca --create-service-accounts
al ejecutar bmctl create config
para que bmctl
cree las cuentas de servicio con los roles de gestión de identidades y accesos necesarios.
Si vas a usar un cliente de la API de GKE On-Prem para crear un clúster de administrador, de forma predeterminada, el comando bmctl register bootstrap
crea las cuentas de servicio con los roles de IAM necesarios cuando ejecutas el comando para crear un clúster de arranque.
Las cuentas de servicio también son necesarias para crear clústeres de usuario, pero se habrían creado y configurado al crear el clúster de administrador que gestiona los clústeres de usuario.
En la siguiente tabla se describen las cuentas de servicio que se crean automáticamente:
Cuenta de servicio | Finalidad | Roles |
---|---|---|
anthos-baremetal-gcr | Google Distributed Cloud usa esta cuenta de servicio para descargar imágenes de contenedor de Artifact Registry. | Ninguno |
anthos-baremetal-connect | Agente de conexión: usa esta cuenta de servicio para mantener una conexión entre tu clúster y Google Cloud. Esto permite acceder al clúster y a las funciones de gestión de cargas de trabajo, como la consola Google Cloud y la puerta de enlace de conexión, para interactuar con el clúster. | roles/gkehub.connect |
anthos-baremetal-register | Connect Agent usa esta cuenta de servicio para registrar tus clústeres en una flota. | roles/gkehub.admin |
anthos-baremetal-cloud-ops | El agente de Stackdriver usa esta cuenta de servicio para exportar registros y métricas de clústeres a Cloud Logging y Cloud Monitoring. |
roles/logging.logWriter roles/monitoring.metricWriter roles/stackdriver.resourceMetadata.writer roles/opsconfigmonitoring.resourceMetadata.writer roles/monitoring.dashboardEditor roles/monitoring.viewer roles/serviceusage.serviceUsageViewer roles/kubernetesmetadata.publisher |
Configurar cuentas de servicio manualmente
Si lo prefieres, puedes crear las cuentas de servicio manualmente, configurarlas con los roles necesarios y descargar los archivos de claves JSON antes de crear los clústeres.
Si usas bmctl
para crear clústeres, añade referencias a los archivos de clave JSON al archivo de configuración del clúster correspondiente. Para ver un ejemplo, consulta Editar el archivo de configuración.
Si usas una API de GKE On-Prem para crear un clúster de administrador, puedes especificar los archivos de claves cuando ejecutes bmctl register bootstrap
para crear el clúster de arranque.
Para crear las cuentas de servicio y los archivos de claves, sigue estos pasos:
En tu estación de trabajo de administrador, asegúrate de que estás en el directorio
baremetal
.Si aún no lo has hecho, inicia sesión en Google Cloud CLI:
gcloud auth login
Crea las cuentas de servicio:
gcloud iam service-accounts create anthos-baremetal-gcr \ --project=PROJECT_ID gcloud iam service-accounts create anthos-baremetal-connect \ --project=PROJECT_ID gcloud iam service-accounts create anthos-baremetal-register \ --project=PROJECT_ID gcloud iam service-accounts create anthos-baremetal-cloud-ops \ --project=PROJECT_ID
Asigna los roles de gestión de identidades y accesos necesarios a las cuentas de servicio:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-connect@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/gkehub.connect" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-register@PROJECT_ID.iam.gserviceaccount.com" \ --role=roles/gkehub.admin gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/logging.logWriter" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/monitoring.metricWriter" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/stackdriver.resourceMetadata.writer" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/opsconfigmonitoring.resourceMetadata.writer" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/monitoring.dashboardEditor" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/monitoring.viewer" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/serviceusage.serviceUsageViewer" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/kubernetesmetadata.publisher"
Descarga los archivos de clave 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 gcloud iam service-accounts keys create connect-agent.json \ --project=PROJECT_ID \ --iam-account=anthos-baremetal-connect@PROJECT_ID.iam.gserviceaccount.com gcloud iam service-accounts keys create connect-register.json \ --project=PROJECT_ID \ --iam-account=anthos-baremetal-register@PROJECT_ID.iam.gserviceaccount.com 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
Configurar una cuenta de servicio que pueda acceder a un segmento de Cloud Storage
Para acceder a Cloud Storage, debes usar una cuenta de servicio y un archivo de claves. Puedes usar esta cuenta de servicio para habilitar que las instantáneas de los clústeres se suban automáticamente a los segmentos de Cloud Storage o para importar imágenes de máquinas virtuales desde segmentos de Cloud Storage para usarlas con VM Runtime en GDC.
Para crear la cuenta de servicio y el archivo de claves, sigue estos pasos:
Asegúrate de que estás en el directorio
baremetal
.Si aún no lo has hecho, inicia sesión en Google Cloud CLI:
gcloud auth login
Si aún no lo has hecho, habilita la API Cloud Storage en tu proyecto:
storage.googleapis.com
Google Cloudgcloud services enable --project=PROJECT_ID \ storage.googleapis.com
Crea una cuenta de servicio que pueda usar tu clúster para acceder a los segmentos de Cloud Storage:
gcloud iam service-accounts create SA_NAME \ --project=PROJECT_ID
Sustituye
SA_NAME
por el nombre de la nueva cuenta de servicio. El nombre de esta cuenta de servicio aparece en la dirección de correo que se proporciona durante la creación, con el formatoSA_NAME@PROJECT_ID.iam.gserviceaccount.com
.Crea un rol personalizado con los siguientes permisos:
storage.buckets.create
storage.buckets.get
storage.buckets.list
storage.objects.create
resourcemanager.projects.get
gcloud iam roles create ROLE_ID \ --permissions=storage.buckets.create,storage.buckets.get,storage.buckets.list,storage.objects.create \ --project=PROJECT_ID
Sustituye
ROLE_ID
por el nombre del nuevo rol personalizado, comosnapshotUpload
. La ruta completa de este rol personalizado tiene el formatoprojects/PROJECT_ID/roles/ROLE_ID
.Añade un enlace de política a la cuenta de servicio:
gcloud iam service-accounts add-iam-policy-binding SA_NAME@PROJECT_ID.iam.gserviceaccount.com \ --member=serviceAccount:SA_NAME@PROJECT_ID.iam.gserviceaccount.com \ --role='projects/PROJECT_ID/roles/ROLE_ID'
Descarga el archivo JSON de la clave de la cuenta de servicio:
gcloud iam service-accounts keys create OUTPUT_FILE \ --iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com
Para obtener más información sobre cómo crear capturas de clúster y subirlas automáticamente a un segmento de Cloud Storage, consulta Crear capturas para diagnosticar problemas del clúster.
Para obtener más información sobre cómo importar imágenes de VM desde Cloud Storage, consulta Crear y usar credenciales para importar imágenes de Cloud Storage para VM Runtime en GDC.