En este tema se explica cómo utilizar un archivo de configuración plano o una especificación de objeto de estilo Kubernetes para configurar un clúster de carga de trabajo de Tanzu Kubernetes Grid (TKG) antes de implementarlo en vSphere 8 con Tanzu. Para configurar un clúster de carga de trabajo para la implementación en vSphere con un clúster de administración independiente, consulte Archivos de configuración de vSphere con clúster de administración independiente.
Para obtener información general sobre cómo configurar clústeres de carga de trabajo mediante archivos de configuración y especificaciones de objetos, consulte Especificaciones de objetos y archivos de configuración.
Para utilizar las funciones de clúster de carga de trabajo específicas de vSphere que requieren alguna configuración fuera del archivo de configuración o las especificaciones de objetos del clúster, consulte Clústeres en vSphere.
Para configurar un clúster de carga de trabajo antes de implementarlo en vSphere with Tanzu, cree un archivo de especificación de objeto de estilo Kubernetes si va a configurar un clúster basado en clases o un archivo de configuración del clúster si va a configurar un clúster de TKC. Al pasar cualquiera de estos archivos a la opción -f
de tanzu cluster create
, la CLI de Tanzu utiliza la información de configuración definida en el archivo para conectarse a la cuenta de vSphere y crear los recursos que utilizará el clúster.
Para configurar:
Para obtener información sobre los tipos de clúster anteriores, consulte Tipos de clústeres de carga de trabajo.
Para configurar un clúster de carga de trabajo para la implementación en vSphere 8 with Tanzu:
Cree o adapte una especificación de objeto Cluster
. En la documentación de vSphere 8 se muestran ejemplos de especificación de objetos Cluster
para trabajar:
Establezca los tipos de máquina virtual, la escala y otras configuraciones básicas de clúster en la topology
bloque del archivo de especificaciones. Para obtener información sobre el bloque topology
, consulte Objeto de clúster basado en clases y estructura de topología y Variables de topología de ClusterClass a continuación.
(Opcional) Para personalizar los atributos que no se pueden establecer en el objeto Cluster
, por ejemplo, la configuración de la interfaz de contenedor de un solo uso en la infraestructura del clúster, consulte Configurar los ajustes de infraestructura de un solo uso.
La configuración de nivel superior configurable en un objeto Cluster
con tipo tanzukubernetescluster
se realiza de la siguiente manera. Consulte variables de topología de ClusterClass para ver las variables
que puede configurar:
spec:
clusterNetwork
apiServerPort
services
cidrBlocks
pods
cidrBlocks
serviceDomain
controlPlaneEndpoint
host
port
topology
class
version
rolloutAfter
controlPlane
metadata
replicas
nodeDrainTimeout
nodeDeletionTimeout
machineHealthCheck
maxUnhealthy
nodeStartupTimeout
unhealthyConditions
workers
machineDeployments
metadata
- class
name
failureDomain
replicas
nodeDrainTimeout
nodeDeletionTimeout
machineHealthCheck
maxUnhealthy
nodeStartupTimeout
unhealthyConditions
variables
name
value
variables
name
value
Estos campos se establecen en la especificación de tipo de objeto Cluster
: cluster_types.go.
json:
indica si el campo es opcional. Los campos opcionales tienen la configuración omitempty
.Topology
contiene *Workers
en la especificación de tipo, por lo que workers
se encuentra en topology
en la especificación de objeto.Las opciones - class
y variables
se definen en la clase de clúster del objeto Cluster
, que se establece como el valor spec.topology.class
del clúster. Por ejemplo, en vSphere with Tanzu, esto es un objeto ClusterClass
denominado tanzukubernetescluster
, que es diferente de un objeto TanzuKubernetesCluster
, como se explica en Tipos de clústeres de carga de trabajo.
variables
configurables incluyen vmClass
, storageClass
, proxy
, nodeLabels
, extensionCert
y muchas otras, como se enumeran en Variables de topología de ClusterClass a continuación. Estas variables configuran e invalidan la configuración en los objetos subyacentes al objeto de clúster, como los objetos KubeAdmConfig
y Machine
.
La clase de clúster tanzukubernetescluster
, la ClusterClass
predeterminada para TKG en vSphere con clústeres de carga de trabajo de Tanzu, admite las siguientes variables establecidas en topology.variables
y topology.workers.machineDeployments.variables
. La configuración de variables específica de las implementaciones de máquinas, como los grupos de nodos, anula la configuración global.
Estas variables configuran e invalidan la configuración en los objetos subyacentes al objeto de clúster, como las opciones vmClass
, storageClass
y proxy
establecidas en los objetos KubeAdmConfig
y Machine
. Esto permite a los usuarios configurar un clúster por completo dentro de la especificación de objeto Cluster
sin tener que editar las especificaciones de objetos de nivel inferior:
clusterEncryptionConfigYaml
controlPlaneVolumes
defaultRegistrySecret
defaultStorageClass
extensionCert
nodePoolLabels
nodePoolTaints
nodePoolVolumes
ntp
proxy
storageClass
storageClasses
TKR_DATA
trust
user
vmClass
Los siguientes temas de la documentación de vSphere 8 describen la reconfiguración de un clúster en ejecución cambiando sus opciones storageClass
y vmClass
:
Para crear un archivo de configuración del clúster para un clúster de carga de trabajo TKC (heredado) en vSphere 8, puede copiar un archivo de configuración existente de una implementación anterior en vSphere with Tanzu y actualizarlo. Si lo prefiere, puede crear un archivo desde cero mediante una plantilla vacía.
Para configurar un clúster de carga de trabajo implementado por el supervisor de vSphere with Tanzu, establezca variables para definir las clases de almacenamiento, las clases de máquina virtual, el dominio de servicio, el espacio de nombres y otros valores necesarios con los que crear su clúster. En la siguiente tabla se enumeran las variables que puede incluir en el archivo de configuración de un clúster basado en TKC. Como alternativa, puede establecerlas como variables de entorno locales.
Variables requeridas | ||
---|---|---|
Variable | Ejemplo o tipo de valor | Descripción |
INFRASTRUCTURE_PROVIDER |
tkg-service-vsphere |
Siempre tkg-service-vsphere para los objetos TanzuKubernetesCluster en vSphere with Tanzu. |
CLUSTER_PLAN |
dev , prod o un plan personalizado |
Establece los recuentos de nodos. |
CLUSTER_CIDR |
Rango de CIDR | El rango de CIDR que se utilizará para los pods. El rango recomendado es 100.96.0.0/11 . Cambie este valor solo si el rango recomendado no está disponible. |
SERVICE_CIDR |
El rango de CIDR que se utilizará para los servicios de Kubernetes. El rango recomendado es 100.64.0.0/13 . Cambie este valor solo si el rango recomendado no está disponible. |
|
SERVICE_DOMAIN |
Dominio | Por ejemplo, my.example.com o cluster.local si no hay DNS. Si va a asignar FQDN con los nodos, se requiere la búsqueda de DNS. |
CONTROL_PLANE_VM_CLASS |
Una clase de máquina virtual estándar para vSphere with Tanzu, por ejemplo, guaranteed-large .Consulte Usar clases de máquinas virtuales con clústeres de TKG en supervisor en la documentación de vSphere with Tanzu. |
Clase de máquina virtual para nodos de plano de control |
WORKER_VM_CLASS |
Clase de máquina virtual para nodos de trabajador | |
Variables opcionales | ||
Variable | Ejemplo o tipo de valor | Descripción |
CLUSTER_NAME |
Cadena | Anulado por el argumento CLUSTER-NAME pasado a tanzu cluster create .Este nombre debe cumplir con los requisitos del nombre de host de DNS tal como se describe en RFC 952 y debe modificarse en RFC 1123 y debe tener un máximo de 42 caracteres. Note: Debe proporcionar un nombre único para todos los clústeres de carga de trabajo en todos los espacios de nombres. Si especifica un nombre de clúster que está en uso en otro espacio de nombres, se produce un error en la implementación del clúster. |
NAMESPACE |
Espacio de nombres; se establece de forma predeterminada en default |
El espacio de nombres en el que se implementará el clúster. Para encontrar el espacio de nombres del supervisor, ejecute kubectl get namespaces . |
CNI |
antrea o calico ; de forma predeterminada es antrea |
Interfaz de redes de contenedor para cargas de trabajo alojadas, ya sea Antrea o Calico. |
CONTROL_PLANE_MACHINE_COUNT |
Entero; CONTROL_PLANE_MACHINE_COUNT debe ser un número impar.El valor predeterminado es 1 para dev y 3 para prod , como establece CLUSTER_PLAN . |
Implemente un clúster de carga de trabajo con más nodos de plano de control que los valores predeterminados del plan dev o prod . |
WORKER_MACHINE_COUNT |
Implemente un clúster de carga de trabajo con más nodos de trabajo que los valores predeterminados del plan dev o prod . |
|
STORAGE_CLASSES |
La cadena vacía "" permite que los clústeres usen cualquier clase de almacenamiento en el espacio de nombres; o una lista de valores separados por comas de kubectl get storageclasses , por ejemplo, "SC-1,SC-2,SC-3" . |
Clases de almacenamiento disponibles para la personalización de nodos. |
DEFAULT_STORAGE_CLASS |
Cadena vacía "" para ningún valor predeterminado o valor de CLI, como se indica arriba. |
Clase de almacenamiento predeterminada para los trabajos o el plano de control. |
CONTROL_PLANE_STORAGE_CLASS |
Valor devuelto por kubectl get storageclasses |
Clase de almacenamiento predeterminada para los nodos del plano de control. |
WORKER_STORAGE_CLASS |
Clase de almacenamiento predeterminada para los nodos de trabajo. | |
NODE_POOL_0_NAME |
Cadena | Nombre de grupo de nodos, etiquetas y manchas. Un TanzuKubernetesCluster solo puede tener un grupo de nodos. |
NODE_POOL_0_LABELS |
Lista JSON de cadenas, por ejemplo, ["label1", "label2"] |
|
NODE_POOL_0_TAINTS |
Lista JSON de cadenas de pares clave-valor, por ejemplo, [{"key1": "value1"}, {"key2": "value2"}] |
Puede establecer las variables anteriores realizando una de las siguientes acciones:
Incluirlos en el archivo de configuración del clúster que se envía a la opción --file
de la CLI de Tanzu. Por ejemplo:
CONTROL_PLANE_VM_CLASS: guaranteed-large
Desde la línea de comandos, configúrelos como variables de entorno local ejecutando export
(en Linux y macOS) o SET
(en Windows) en la línea de comandos. Por ejemplo:
export CONTROL_PLANE_VM_CLASS=guaranteed-large
NotaSi desea configurar ajustes de proxy únicos para un clúster de carga de trabajo, puede establecer
TKG_HTTP_PROXY
,TKG_HTTPS_PROXY
yNO_PROXY
como variables de entorno y, a continuación, utilizar la CLI de Tanzu para crear el clúster. Estas variables tienen prioridad sobre la configuración de proxy existente en vSphere with Tanzu.
Continúe con Crear clústeres de carga de trabajo. Después de implementar un clúster de carga de trabajo en vSphere, debe configurar sus reservas de DHCP de nodo y DNS de endpoint como se describe en Configurar las reservas de DHCP del nodo y el registro de DNS de endpoint (solo vSphere).