En esta página, se describen los Google Cloud recursos que debes 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 el Google Cloud propietario del proyecto, pídele a un propietario que te otorgue los siguientes roles de Identity and Access Management (IAM):
Rol Objetivo roles/compute.viewer Obligatorio: Es necesario cuando bmctl
valida el campo clusterOperations.location en el archivo de configuración del clúster.roles/iam.serviceAccountAdmin Obligatorio: Es necesario para crear las cuentas de servicio que requiere Google Distributed Cloud. roles/iam.securityAdmin Obligatorio: Es necesario para otorgar roles de IAM a las cuentas de servicio que requiere Google Distributed Cloud. roles/iam.serviceAccountKeyAdmin Obligatorio: Es necesario para crear archivos de claves JSON para las cuentas de servicio que requiere Google Distributed Cloud. roles/serviceusage.serviceUsageAdmin Obligatorio: Es necesario para habilitar las APIs de Google que requiere Google Distributed Cloud. roles/gkeonprem.admin Opcional: Es necesario si deseas crear clústeres con 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: Es necesario 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. Google Distributed Cloud 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 Google Distributed Cloud use Cloud Logging y Cloud Monitoring, así como funciones de flota, como Cloud Service Mesh, Config Sync, Policy Controller y Config Controller.
Si usarás la herramienta bmctl
para crear clústeres, puedes incluir la marca --enable-apis
cuando ejecutes bmctl create config
, y bmctl
habilitará las APIs que se enumeran 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 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 \ 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
Con la excepción de
gkeonprem.googleapis.com
, estas APIs de Google son necesarias para tu proyecto. Las siguientes dos APIs son obligatorias solo para la versión 1.29 y versiones posteriores:compute.googleapis.com
kubernetesmetadata.googleapis.com
Si instalas tus clústeres detrás de un proxy, debes agregar muchas de estas APIs a la lista de conexiones permitidas. Para obtener una lista de las APIs y los extremos que debes agregar a la lista de entidades permitidas y los motivos de su acceso, consulta Cómo 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 IAM específicos en tu proyecto de Google Cloud asociado. Como práctica recomendada, debes crear cuentas de servicio independientes para diferentes propósitos, en especial en entornos de producción.
Si usarás la herramienta 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 requeridos.
Si usarás un cliente de 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 requeridos cuando ejecutas el comando para crear un clúster de arranque.
Las cuentas de servicio también son necesarias para crear clústeres de usuarios, pero estas se habrían creado y configurado cuando se creó el clúster de administrador que administra los clústeres de usuarios.
En la siguiente tabla, se describen las cuentas de servicio que se crean automáticamente:
Cuenta de servicio | Objetivo | Funciones |
---|---|---|
anthos-baremetal-gcr | Google Distributed Cloud usa esta cuenta de servicio para descargar imágenes de contenedor de Container Registry. | Ninguno |
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, incluida la consola de Google Cloud y la puerta de enlace de conexión, para interactuar con el clúster. | roles/gkehub.connect |
anthos-baremetal-register | El agente de Connect 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 |
Configura las cuentas de servicio de forma manual
Si lo prefieres, puedes crear las cuentas de servicio de forma manual, configurarlas con los roles necesarios y descargar los archivos de claves JSON antes de crear clústeres.
Si usas bmctl
para crear clústeres, agregas referencias a los archivos de claves JSON al archivo de configuración de clúster adecuado. Para ver un ejemplo, consulta Cómo 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 ejecutas 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 hiciste, 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" 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 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 bien importar imágenes de máquinas virtuales (VM) desde buckets de Cloud Storage para 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 hiciste, 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 nueva cuenta de servicio. 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 del nuevo rol personalizado, comosnapshotUpload
. La ruta completa de este rol personalizado tiene el formatoprojects/PROJECT_ID/roles/ROLE_ID
.Agrega una vinculación de políticas 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
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 para diagnosticar problemas de clústeres.
Para obtener más información sobre cómo 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 GDC.