En esta página, se describen los recursos de Google Cloud que necesitas crear y configurar antes de crear clústeres.
Antes de comenzar
Crea un proyecto de Google Cloud y una cuenta de facturación.
Si no eres propietario de un proyecto de Google Cloud, pídele a un propietario del proyecto que te otorgue los siguientes roles de Identity and Access Management (IAM):
Rol Objetivo 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 GKE en Bare Metal. roles/iam.securityAdmin Obligatorio: Se necesita para otorgar funciones de IAM a las cuentas de servicio que requiere GKE en Bare Metal. roles/iam.serviceAccountKeyAdmin Obligatorio: Se necesita a fin de crear archivos de claves JSON para las cuentas de servicio que requiere GKE en Bare Metal. roles/serviceusage.serviceUsageAdmin Obligatorio: Se requiere para habilitar las APIs de Google que requiere GKE en Bare Metal. roles/gkeonprem.admin Opcional: Es necesaria si deseas crear clústeres con los clientes de la API de GKE On-Prem o configurar un clúster para que lo administre la API de GKE On-Prem. roles/gkehub.viewer
roles/container.viewerOpcional: Se necesita si deseas acceder a las páginas de GKE Enterprise y Google Kubernetes Engine en la consola de Google Cloud. Para obtener información sobre cómo otorgar roles, consulta Administración del acceso a proyectos, carpetas y organizaciones.
Habilita las APIs
Se deben habilitar varias APIs de Google en tu proyecto de Google Cloud asociado. GKE en Bare Metal usa las APIs cuando crea clústeres. Las APIs también son necesarias para mantener una conexión con Google Cloud. La conexión a Google Cloud permite que GKE en Bare Metal use Cloud Logging, Cloud Monitoring y funciones de flota, como Anthos Service Mesh, el Sincronizador de configuración, Policy Controller y Config Controller.
Si usarás la herramienta de bmctl
para crear clústeres, puedes incluir la marca --enable-apis
cuando ejecutes bmctl create config
, y bmctl
habilitará las APIs enumeradas en el siguiente comando de gcloud services enable
. Si usarás 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 API, ejecuta los siguientes comandos:
Accede a 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 \ connectgateway.googleapis.com \ container.googleapis.com \ gkeconnect.googleapis.com \ gkehub.googleapis.com \ gkeonprem.googleapis.com \ iam.googleapis.com \ logging.googleapis.com \ monitoring.googleapis.com \ opsconfigmonitoring.googleapis.com \ serviceusage.googleapis.com \ stackdriver.googleapis.com \ storage.googleapis.com
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, GKE en Bare Metal requiere una cuenta de servicio configurada con funciones de IAM específicas en tu proyecto de Google Cloud asociado. Como práctica recomendada, debes crear cuentas de servicio separadas para diferentes propósitos, especialmente en entornos de producción.
Si usarás la herramienta de bmctl
para crear clústeres, puedes incluir la marca --create-service-accounts
cuando ejecutes bmctl create config
para que bmctl
cree las cuentas de servicio con los roles de IAM necesarios.
Si usarás 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 la creación del clúster de usuario, pero las cuentas de servicio se habrían creado y configurado cuando se crea 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 de forma automática:
Cuenta de servicio | Objetivo | Roles |
---|---|---|
anthos-baremetal-gcr | GKE en Bare Metal usa esta cuenta de servicio para descargar imágenes de contenedor desde Container Registry. | Ninguna |
anthos-baremetal-connect | El agente de Connect usa esta cuenta de servicio para mantener una conexión entre tu clúster y Google Cloud. Esto permite el acceso al clúster y a las funciones de administración de cargas de trabajo, como la consola de Google Cloud y la puerta de enlace de conexión para interactuar con tu clúster. | roles/gkehub.connect |
anthos-baremetal-register | El agente de Connect usa esta cuenta de servicio para registrar tus clústeres con 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 |
Configura las cuentas de servicio de forma manual
Si lo prefieres, puedes crear manualmente las cuentas de servicio, configurarlas con las funciones necesarias y descargar archivos de claves JSON antes de crear los clústeres.
Si usas bmctl
para crear clústeres, agrega referencias a los archivos de claves JSON en el archivo de configuración del clúster adecuado. Para ver un ejemplo, consulta Edita 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, haz lo siguiente:
En la estación de trabajo de administrador, asegúrate de estar en el directorio
baremetal
.Si aún no lo has hecho, accede a 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
Otorga los roles de IAM necesarios en 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"
Descarga los archivos 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 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
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) desde los buckets de Cloud Storage a fin de usarlas con el entorno de ejecución de VM en GDC.
Para crear la cuenta de servicio y el archivo de claves, completa los siguientes pasos:
Asegúrate de estar en el directorio
baremetal
.Si aún no lo has hecho, accede a Google Cloud CLI:
gcloud auth login
Si aún no lo hiciste, habilita la API de Cloud Storage,
storage.googleapis.com
, en tu proyecto de Google Cloud:gcloud services enable --project=PROJECT_ID \ storage.googleapis.com
Crea una cuenta de servicio que tu clúster pueda usar para acceder a los buckets de Cloud Storage:
gcloud iam service-accounts create SA_NAME \ --project=PROJECT_ID
Reemplaza
SA_NAME
por el nombre de la cuenta de servicio nueva. Este nombre de cuenta de servicio aparece en la dirección de correo electrónico que se aprovisiona durante la creación, en 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
Reemplaza
ROLE_ID
por el nombre de la función personalizada nueva, comosnapshotUpload
. La ruta completa de este rol personalizado tiene el formatoprojects/PROJECT_ID/roles/ROLE_ID
.Agrega una vinculación 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 de claves JSON 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 instantáneas de clúster y subirlas automáticamente a un bucket de Cloud Storage, consulta Crea instantáneas para ayudar a diagnosticar problemas de clústeres.
Si deseas obtener más información sobre cómo importar imágenes de VM desde Cloud Storage, consulta Crea y usa credenciales a fin de importar imágenes desde Cloud Storage para el entorno de ejecución de VM en GDC.