En Google Distributed Cloud, los clústeres de usuario ejecutan tus cargas de trabajo y, en una arquitectura de varios clústeres, los clústeres de usuario se crean y administran mediante un clúster de administrador.
Después de crear un clúster de administrador, la llamada al comando bmctl create config
crea un archivo YAML que puedes editar para definir tu clúster de usuario. Para aplicar la
configuración y crear el clúster de usuario, usa el comando
bmctl create cluster
. Las comprobaciones previas se aplican a los clústeres de usuario que se crearon con el
comando bmctl create cluster
.
Mantener las cargas de trabajo fuera del clúster de administración protege los datos administrativos sensibles, como las claves SSH almacenadas en el clúster de administrador, de aquellos que no necesitan acceso a esa información. Además, mantener los clústeres de usuarios separados entre sí proporciona una seguridad general adecuada para tus cargas de trabajo.
Requisitos previos
- Se descarga la versión más reciente de
bmctl
(gs://anthos-baremetal-release/bmctl/1.29.100-gke.251/linux-amd64/bmctl
) de Cloud Storage. - Un clúster de administración en funcionamiento con acceso al servidor de la API del clúster (el
controlPlaneVIP
). - Los nodos del clúster de administrador tienen conectividad de red a todos los nodos del clúster de usuario de destino.
- La estación de trabajo que ejecuta
bmctl
tiene conectividad de red a todos los nodos en los clústeres de usuario de destino. - La estación de trabajo de administrador puede establecer una conexión SSH a cada uno de los nodos del clúster de usuario.
- La cuenta de servicio del registro de Connect está configurada en el clúster de administrador para usarla con Connect.
Habilita SELinux
Si deseas habilitar SELinux para proteger tus contenedores, debes asegurarte de que SELinux esté habilitado en el modo Enforced
en todas tus máquinas anfitrión. A partir de la versión 1.9.0 o posterior de Google Distributed Cloud, puedes habilitar o inhabilitar SELinux antes o después de la creación o actualización del clúster. SELinux está habilitado de forma predeterminada en Red Hat Enterprise Linux (RHEL). Si SELinux está inhabilitado en tus máquinas anfitrión o no estás seguro, consulta Protege tus contenedores con SELinux para obtener instrucciones sobre cómo habilitarlo.
Google Distributed Cloud admite SELinux solo en los sistemas RHEL.
Crea un archivo de configuración de clúster de usuario
El archivo de configuración que permite crear un clúster de usuario es casi el mismo que se usó para crear un clúster de administrador. La única diferencia es que quitas la sección de configuración de credenciales locales para que la configuración sea una colección válida de recursos de Kubernetes. La sección de configuración se encuentra en la parte superior del archivo, en la sección bmctl configuration variables
. Para ver ejemplos de configuración de clústeres de usuarios, consulta Clústeres de usuarios en las muestras de configuración de clústeres.
De forma predeterminada, los clústeres de usuarios heredan sus credenciales del clúster de administrador que los administra. Puedes anular de manera selectiva algunas de estas credenciales o todas.
Crea un archivo de configuración de clúster de usuario con el comando
bmctl create config
:bmctl create config -c USER_CLUSTER_NAME
Por ejemplo, ejecuta el siguiente comando para crear un archivo de configuración para un clúster de usuario llamado
user1
:bmctl create config -c user1
El archivo se escribe en
bmctl-workspace/user1/user1.yaml
. La ruta genérica al archivo esbmctl-workspace/CLUSTER NAME/CLUSTER_NAME.yaml
.Edita el archivo de configuración con los siguientes cambios:
Quita las rutas de acceso de los archivos de credenciales locales de la configuración:
...
gcrKeyPath: (path to GCR service account key)sshPrivateKeyPath: (path to SSH private key, used for node access)gkeConnectAgentServiceAccountKeyPath: (path to Connect agent service account key)gkeConnectRegisterServiceAccountKeyPath: (path to Hub registration service account key)cloudOperationsServiceAccountKeyPath: (path to Cloud Operations service account key)...Cambia la configuración para especificar un tipo de clúster de
user
en lugar deadmin
:... spec: # Cluster type. This can be: # 1) admin: to create an admin cluster. This can later be used to create # user clusters. # 2) user: to create a user cluster. Requires an existing admin cluster. # 3) hybrid: to create a hybrid cluster that runs admin cluster # components and user workloads. # 4) standalone: to create a cluster that manages itself, runs user # workloads, but does not manage other clusters. type: user ...
Registra tus clústeres en una flota especificando el ID del proyecto en el campo
gkeConnect.projectID
. Este proyecto se conoce como el proyecto host de flota.... gkeConnect: projectID: my-project-123 ...
- De manera opcional, puedes agregar
gkeConnect.location
a la especificación del clúster para especificar la región de Google Cloud en la que se ejecutan la flota y los servicios de Connect. Esta membresía regional restringe el tráfico de servicio de flota a tu región. Si incluyesgkeConnect.location
en la especificación del clúster, la región que especifiques debe ser la misma que la región configurada enclusterOperations.location
. Si las regiones no son las mismas, la creación del clúster fallará.
- De manera opcional, puedes agregar
Si la API de GKE On-Prem está habilitada en tu proyecto de Google Cloud, todos los clústeres del proyecto se inscriben en la API de GKE On-Prem de forma automática en la región configurada en
clusterOperations.location
.Si deseas inscribir todos los clústeres del proyecto en la API de GKE On-Prem, asegúrate de seguir los pasos que se indican en Antes de comenzar para activar y usar la API de GKE On-Prem en el proyecto.
Si no deseas inscribir el clúster en la API de GKE On-Prem, incluye esta sección y configura
gkeOnPremAPI.enabled
comofalse
. Si no deseas inscribir ningún clúster en el proyecto, inhabilitagkeonprem.googleapis.com
(el nombre del servicio para la API de GKE On-Prem) en el proyecto. Para obtener instrucciones, consulta Inhabilita los servicios.
Especifica la dirección IP del nodo del plano de control.
... # Sample control plane config controlPlane: nodePoolSpec: nodes: - address: 10.200.0.20 ...
Asegúrate de que las especificaciones del clúster de administrador y de usuario para las VIP del balanceador de cargas y los grupos de direcciones sean complementarias y no se superpongan con los clústeres existentes. En el siguiente ejemplo, se muestra un par de ejemplo de configuraciones de clústeres de administrador y de usuario, y se especifica el balanceo de cargas y los grupos de direcciones:
... # Sample admin cluster config for load balancer and address pools loadBalancer: vips: controlPlaneVIP: 10.200.0.49 ingressVIP: 10.200.0.50 addressPools: - name: pool1 addresses: - 10.200.0.50-10.200.0.70 ... ... # Sample user cluster config for load balancer and address pools loadBalancer: vips: controlPlaneVIP: 10.200.0.71 ingressVIP: 10.200.0.72 addressPools: - name: pool1 addresses: - 10.200.0.72-10.200.0.90 ...
El resto de los archivos de configuración del clúster de usuario son los mismos que los del clúster de administrador.
Especifica la densidad del Pod de los nodos del clúster:
... # NodeConfig specifies the configuration that applies to all nodes in the cluster. nodeConfig: # podDensity specifies the pod density configuration. podDensity: # maxPodsPerNode specifies at most how many pods can be run on a single node. maxPodsPerNode: 110 ...
En los clústeres de usuario, los valores permitidos para
maxPodsPerNode
son32-250
. El valor predeterminado si no se especifica, es110
. Este valor no se puede actualizar una vez que se crea el clúster.La densidad del Pod también está limitada por los recursos IP disponibles de tu clúster. Para obtener más detalles, consulta Herramientas de redes de Pods.
Crea el clúster de usuario
Ejecuta el comando bmctl
para aplicar la configuración del clúster de usuario y crear el clúster:
bmctl create cluster -c USER_CLUSTER_NAME --kubeconfig ADMIN_KUBECONFIG
Reemplaza lo siguiente:
USER_CLUSTER_NAME
especifica el nombre del clúster creado en la sección anterior.ADMIN_KUBECONFIG
la ruta al archivo kubeconfig del clúster de administrador
Por ejemplo, para un clúster de usuarios llamado user1
y un archivo kubeconfig de clúster de administrador con la ruta kubeconfig bmctl-workspace/admin/admin-kubeconfig
, el comando sería el siguiente:
bmctl create cluster -c user1 --kubeconfig bmctl-workspace/admin/admin-kubeconfig
Ejemplos de configuración de clústeres de usuarios
Para ver ejemplos de configuración de clústeres de usuarios, consulta Clústeres de usuarios en las muestras de configuración de clústeres.