En este documento, se muestra cómo configurar una política de almacenamiento de VM para un clúster de GKE en VMware.
Descripción general
En vSphere, la administración basada en políticas de almacenamiento (SPBM) ayuda a alinear el almacenamiento con las demandas de las aplicaciones de las máquinas virtuales. Proporciona un framework de políticas de almacenamiento que funciona como un único panel de control unificado en una amplia gama de servicios de datos y soluciones de almacenamiento.
En un clúster de Anthos alojado en VMware, puedes especificar políticas de almacenamiento como una alternativa a la especificación de almacenes de datos. Puedes definir las políticas de almacenamiento según los requisitos de tu aplicación y, luego, vSphere selecciona y administra los almacenes de datos de forma automática. Esto puede reducir la sobrecarga y el mantenimiento asociados con el almacenamiento.
Herencia
Puedes especificar una política de almacenamiento para un clúster de usuario, un grupo de nodos en un clúster de usuario o un conjunto de nodos del plano de control en un clúster de usuario. También puedes especificar una política de almacenamiento para un clúster de administrador, siempre y cuando el clúster de administrador tenga un plano de control de alta disponibilidad y no tenga ningún grupo de nodos de Windows.
Si especificas una política de almacenamiento para un clúster de usuario, los grupos de nodos del clúster de usuario heredarán la política. Si especificas una política de almacenamiento para un grupo de nodos individual, se usa en lugar de la política de almacenamiento a nivel de clúster. Del mismo modo, si especificas un almacén de datos para un grupo de nodos individual, ese almacén de datos se usa en lugar de la política de almacenamiento a nivel de clúster.
En un clúster de usuario que tiene habilitado el plano de control V2, los nodos del plano de control heredan la política de almacenamiento a nivel del clúster. Si especificas una política de almacenamiento o un almacén de datos para los nodos del plano de control, se usará esa política en lugar de la política de almacenamiento a nivel de clúster.
Aplica políticas de almacenamiento a almacenes de datos
Puedes aplicar una política de almacenamiento a un almacén de datos único o a varios almacenes de datos. Si aplicas una política de almacenamiento a varios almacenes de datos, los recursos de almacenamiento de un clúster de administrador, un clúster de usuario o un grupo de nodos se pueden distribuir entre los almacenes de datos.
Ejemplo: Crea una política de almacenamiento y un clúster de usuario
En esta sección, se muestra un ejemplo de cómo crear una política de almacenamiento y un clúster de usuario. En este ejemplo, se ilustra la idea de que una política de almacenamiento puede aplicarse a dos almacenes de datos.
Aplica etiquetas a los almacenes de datos
Para realizar los pasos de este ejemplo, tu entorno de vSphere debe tener al menos dos almacenes de datos.
El clúster de vSphere que alojará los nodos del clúster de usuario debe tener acceso a los almacenes de datos que planeas usar para este ejercicio. Hay una comprobación preliminar que lo verifica.
La cuenta de vCenter que usas para aplicar etiquetas debe tener los siguientes privilegios de etiquetado de vSphere en el vCenter Server raíz:
- vSphere Tagging.Create vSphere Tag
- Etiquetado de vSphere.Crear categorías de etiquetas de vSphere
- vSphere Tagging.Assign o Unassign vSphere Tag
En el cliente de vSphere, asigna la misma etiqueta a cada uno de los almacenes de datos que elegiste usar para este ejercicio. Para obtener instrucciones, consulta Asigna etiquetas a los almacenes de datos.
Para obtener información adicional, consulta Etiquetas y atributos de vSphere.
Crea una política de almacenamiento
En el cliente de vSphere, crea una política de almacenamiento de VM para la posición basada en etiquetas. En la política de almacenamiento, especifica la etiqueta que aplicaste a los almacenes de datos elegidos. Si deseas obtener instrucciones, consulta Crea una política de almacenamiento de VM para la posición basada en etiquetas.
Para obtener más información, consulta la política de almacenamiento de VM.
Si usas un almacén de datos de vSAN, consulta la política de almacenamiento de vSAN.
Crea un clúster de usuario
En este ejercicio, crearás un clúster de usuario que tenga un plano de control de alta disponibilidad, por lo que habrá tres nodos del plano de control. Además de los nodos del plano de control, hay seis nodos trabajadores: tres en un grupo de nodos y tres en un segundo grupo de nodos. Todos los nodos usan direcciones IP estáticas.
Primero, sigue las instrucciones en Crea un clúster de usuario (ControlPlane V2).
Mientras completas el archivo de configuración del clúster de usuario, haz lo siguiente:
Establece el valor de
vCenter.storagePolicyName
como el nombre de una política de almacenamiento existente. No establezcas un valor paravCenter.datastore
.Especifica dos grupos de nodos. Para el primer grupo de nodos, no especifiques un almacén de datos ni una política de almacenamiento. Para el segundo grupo de nodos, establece el valor de
vsphere.datastore
como el nombre de un almacén de datos existente.
Ejemplo de archivo de configuración de clúster
Este es un ejemplo de un archivo de bloque de IP y una parte de un archivo de configuración de clúster de usuario.
user-ipblock.yaml
blocks: - netmask: 255.255.255.0 gateway: 172.16.21.1 ips: - ip: 172.16.21.2 - ip: 172.16.21.3 - ip: 172.16.21.4 - ip: 172.16.21.5 - ip: 172.16.21.6 - ip: 172.16.21.7 - ip: 172.16.21.8
user-cluster-yaml
apiVersion: v1 kind: UserCluster ... vCenter: storagePolicyName: "my-storage-policy" network: hostConfig: dnsServers: - "203.0.113.2" - "198.51.100.2" ntpServers: - "216.239.35.4" ipMode: type: "static" ipBlockFilePath: "user-ipblock.yaml" controlPlaneIPBlock: netmask: "255.255.255.0" gateway: "172.16.21.1" ips: - ip: "172.16.21.9" hostname: "cp-vm-1" - ip: "172.16.21.10" hostname: "cp-vm-2" - ip: "172.16.21.11" hostname: "cp-vm-3" loadBalancer: vips: controlPlaneVIP: "172.16.21.40" ingressVIP: "172.16.21.30" kind: MetalLB metalLB: addressPools: - name: "address-pool-1" addresses: - "172.16.21.30-172.16.21.39" ... enableControlplaneV2: true masterNode: cpus: 4 memoryMB: 8192 replicas: 3 nodePools: - name: "worker-pool-1" enableLoadBalancer: true - name: "worker-pool-2" vSphere: datastore: "my-np2-datastore" ...
Estos son los puntos importantes que debes comprender en el ejemplo anterior:
Las direcciones IP estáticas para los nodos trabajadores se especifican en un archivo de bloque de IP. El archivo de bloque de IP tiene siete direcciones a pesar de que solo haya seis nodos trabajadores. La dirección IP adicional es necesaria durante la actualización, la actualización y la reparación automática del clúster.
Las direcciones IP estáticas para los tres nodos del plano de control se especifican en la sección
network.controlPlaneIPBlock
del archivo de configuración del clúster de usuario. No se necesita una dirección IP adicional en este bloque.El campo
masterNode.replicas
se estableció en3
, por lo que habrá tres nodos del plano de control. EnmasterNode
, no se especifica nada paravsphere.datastore
nivsphere.storagePolicyName
. Por lo tanto, los nodos del plano de control usarán la política de almacenamiento especificada envCenter.storagePolicyName
.El archivo de configuración del clúster de usuario incluye un valor para
vCenter.storagePolicy
, pero no paravCenter.datastore
. Los nodos usarán la política de almacenamiento especificada en cualquier grupo que no especifique su propia política de almacenamiento o su propio almacén de datos.En
node-pool-1
, no se especifica nada paravsphere.datastore
ovsphere.storagePolicyName
. Por lo tanto, los nodos ennode-pool-1
usarán la política de almacenamiento especificada envCenter.storagePolicyName
.En
node-pool-2
, el valor devsphere.datastore
esmy-np2-datastore
, por lo que los nodos denode-pool-2
usan ese almacén de datos único y no una política de almacenamiento.
Continúa con la creación de tu clúster de usuario como se describe en Crea un clúster de usuario (Plano de control V2).
Crea un clúster de usuario en un centro de datos independiente del clúster de administrador
Un clúster de usuario puede estar en un centro de datos independiente del clúster de administrador. Los dos centros de datos pueden usar la misma instancia de vCenter Server o instancias diferentes de vCenter Server.
En esta sección, se muestra un ejemplo de cómo crear un clúster de usuario que use una instancia independiente de vCenter Server del clúster de administrador. Debido a que los clústeres de usuario y de administrador usan instancias independientes de vCenter Server, también se encuentran en centros de datos separados.
Primero, sigue las instrucciones en Crea un clúster de usuario (ControlPlane V2).
Mientras completas el archivo de configuración del clúster de usuario, haz lo siguiente:
Establece el valor de
vCenter.storagePolicyName
como el nombre de una política de almacenamiento existente. No establezcas un valor paravCenter.datastore
.En
vCenter
, especifica valores paraaddress
,datacenter
,cluster
yresourcePool
.Especifica un valor para
network.vCenter.networkName
.Especifica dos grupos de nodos. Para el primer grupo de nodos, no especifiques un almacén de datos ni una política de almacenamiento. Para el segundo grupo de nodos, establece el valor de
vsphere.datastore
como el nombre de un almacén de datos existente.
Ejemplo de archivo de configuración de clúster
Este es un ejemplo de un archivo de bloque de IP y una parte de un archivo de configuración de clúster de usuario.
user-ipblock.yaml
blocks: - netmask: 255.255.255.0 gateway: 172.16.21.1 ips: - ip: 172.16.21.2 - ip: 172.16.21.3 - ip: 172.16.21.4 - ip: 172.16.21.5 - ip: 172.16.21.6 - ip: 172.16.21.7 - ip: 172.16.21.8
user-cluster-yaml
apiVersion: v1 kind: UserCluster ... vCenter: address: "my-vcenter-server-2.my-domain.example" datacenter: "my-uc-data-center" cluster: "my-uc-vsphere-cluster" resourcePool: "my-uc-resource-pool" storagePolicyName: "my-storage-policy" network: vCenter: networkName: "my-uc-network" hostConfig: dnsServers: - "203.0.113.2" - "198.51.100.2" ntpServers: - "216.239.35.4" ipMode: type: "static" ipBlockFilePath: "user-ipblock.yaml" controlPlaneIPBlock: netmask: "255.255.255.0" gateway: "172.16.21.1" ips: - ip: "172.16.21.9" hostname: "cp-vm-1" - ip: "172.16.21.10" hostname: "cp-vm-2" - ip: "172.16.21.11" hostname: "cp-vm-3" loadBalancer: vips: controlPlaneVIP: "172.16.21.40" ingressVIP: "172.16.21.30" kind: MetalLB metalLB: addressPools: - name: "address-pool-1" addresses: - "172.16.21.30-172.16.21.39" ... enableControlplaneV2: true masterNode: cpus: 4 memoryMB: 8192 replicas: 3 nodePools: - name: "worker-pool-1" enableLoadBalancer: true - name: "worker-pool-2" vSphere: datastore: "my-np2-datastore" ...
Estos son los puntos importantes que debes comprender en el ejemplo anterior:
El archivo de configuración del clúster de usuario incluye un valor para
vCenter.storagePolicy
, pero no paravCenter.datastore
. Los nodos en cualquier grupo de nodos que no especifiquen su propia política de almacenamiento o su propio almacén de datos usarán la política de almacenamiento especificada.En
vCenter
, hay valores especificados paraaddress
,datacenter
,cluster
yresourcePool
. Por lo tanto, el clúster de usuario usará un servidor de vCenter, un centro de datos, un clúster de vSphere y un grupo de recursos diferentes del clúster de administrador.Se especificó un valor para
network.vCenter.networkName
.El campo
masterNode.replicas
se estableció en3
, por lo que habrá tres nodos del plano de control. EnmasterNode
, no se especifica nada paravsphere.datastore
nivsphere.storagePolicyName
. Por lo tanto, los nodos del plano de control usarán la política de almacenamiento especificada envCenter.storagePolicyName
.En
node-pool-1
, no se especifica nada paravsphere.datastore
ovsphere.storagePolicyName
. Por lo tanto, los nodos ennode-pool-1
usarán la política de almacenamiento especificada envCenter.storagePolicyName
.En
node-pool-2
, el valor devsphere.datastore
esmy-np2-datastore
, por lo que los nodos denode-pool-2
usan ese almacén de datos único y no una política de almacenamiento.
Continúa con la creación de tu clúster de usuario como se describe en Crea un clúster de usuario (Plano de control V2).
Cómo usar almacenamiento de vMotion
En esta sección, se muestra cómo usar el almacenamiento de vMotion en un clúster que usa SPBM. Si deseas usar el almacenamiento de vMotion en un clúster que no use SPBM, consulta Usa la herramienta de migración del almacén de datos.
Lleva a cabo los pasos siguientes:
Migrar todas las VMs del clúster al almacén de datos de destino Para obtener instrucciones, consulta Cómo migrar una máquina virtual a un almacenamiento y un recurso de procesamiento nuevos.
Verifica que las VMs se hayan migrado correctamente al almacén de datos nuevo.
Obtén los objetos Machine del clúster:
kubectl --kubeconfig CLUSTER_KUBECONFIG get machines --output yaml
En el resultado, en
status.disks
, puedes ver los discos conectados a las VM. Por ejemplo:status: addresses: – address: 172.16.20.2 type: ExternalIP disks: – bootdisk: true datastore: pf-ds06 filepath: ci-bluecwang-head-xvz2ccv28bf9wdbx-2/ci-bluecwang-head-xvz2ccv28bf9wdbx-2.vmdk uuid: 6000C29d-8edb-e742-babc-9c124013ba54 – datastore: pf-ds06 filepath: anthos/gke-admin-nc4rk/ci-bluecwang-head/ci-bluecwang-head-2-data.vmdk uuid: 6000C29e-cb12-8ffd-1aed-27f0438bb9d9
Verifica que todos los discos de todas las máquinas del clúster se hayan migrado al almacén de datos de destino.
Ejecuta
gkectl diagnose
para verificar que el clúster esté en buen estado.Actualiza la política de almacenamiento para excluir los almacenes de datos antiguos. De lo contrario, los volúmenes nuevos y las VM recreadas podrían asignarse a un almacén de datos anterior.