En los clústeres de Anthos en equipos físicos, los clústeres de usuarios ejecutan tus cargas de trabajo y en una arquitectura de varios clústeres, un clúster de administración crea y administra clústeres de usuario.
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.12.7/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 de clúster administrador tienen conectividad de red a todos los nodos en el 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 clave SSH se usa a fin de crear un clúster de usuario disponible para usuarios raíz o SUDO en todos 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 los clústeres de Anthos en equipos físicos, puedes habilitar o inhabilitar SELinux antes o después de crear o actualizar clústeres. SELinux está habilitado de forma predeterminada en Red Hat Enterprise Linux (RHEL) y CentOS. Si SELinux está inhabilitado en tus máquinas anfitrión o no estás seguro, consulta Protege tus contenedores con SELinux a fin de obtener instrucciones para habilitarlo.
Los clústeres de Anthos en equipos físicos son compatibles con SELinux en sistemas RHEL y CentOS.
Crea un archivo de configuración de clúster de usuario
El archivo de configuración para crear un clúster de usuario es casi el mismo que el que se usa 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 lo siguiente a fin de 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 ....
Asegúrate de que las especificaciones del clúster de usuario y administrador para las VIP de balanceador de cargas y los grupos de direcciones sean complementarias y no se superpongan los clústeres existentes. A continuación, se muestra un par de configuraciones de configuración de clúster de usuario y administrador, que especifican 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 de clúster de usuario son los mismos que los de la configuración del clúster de administrador.
Especifica la densidad del Pod de los nodos del clúster y el entorno de ejecución del contenedor:
.... # 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 # containerRuntime specifies which container runtime to use for scheduling containers on nodes. # containerd and docker are supported. containerRuntime: containerd ....
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.El entorno de ejecución del contenedor predeterminado es containerd. De forma alternativa, puedes usar Docker. Si deseas obtener más información para cambiar el entorno de ejecución, consulta la Guía de cambio del entorno de ejecución de contenedores.
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.