Tanzu Kubernetes Grid (TKG) admite clústeres de nodo único. Los clústeres de nodo único son clústeres de carga de trabajo en los que las cargas de trabajo alojadas se ejecutan junto con la infraestructura del plano de control en un único host ESXi.
Para minimizar aún más el espacio de un clúster de nodo único, puede crearlo a partir de una versión tiny
de Tanzu Kubernetes (TKr), que tiene un OVA muy pequeño de Ubuntu o Photon para su sistema operativo base. Estos clústeres se denominan clústeres de nodo único mínimos.
Los clústeres de nodo único son clústeres de carga de trabajo basados en clases que se ejecutan en vSphere y se implementan mediante clústeres de administración independientes.
Los clústeres de nodo único son totalmente compatibles con Telco Cloud Automation (TCA).
NotaNo puede utilizar Tanzu Mission Control (TMC) para crear y administrar clústeres de nodo único, pero esta capacidad está planificada para una versión futura de TMC.
Los casos prácticos de clúster de nodo único incluyen:
Los clústeres de nodo único son compatibles con los siguientes entornos y componentes:
Categoría | Opciones admitidas |
---|---|
Infraestructura | vSphere 7, vSphere 8 |
Sistema operativo del nodo | Ubuntu 20.04, Photon 3 |
Tamaño del nodo | small |
Paquete | Administrador de certificados, Fluent Bit, Multus, Prometheus, Whereabouts |
Proveedor de endpoint del plano de control | Kube-Vip* |
Equilibrador de carga de carga de trabajo | Kube-Vip* |
Tipo de clúster de carga de trabajo | Basado en clases |
CNI | Antrea, Calico |
Modo de conectividad | Conectado, restringido por Internet |
*NSX Advanced Load Balancer (ALB) no es compatible con clústeres de nodo único en TKG v2.3.
kubectl
Para crear un clúster de carga de trabajo de nodo único en vSphere que utilice una versión tiny
de Tanzu Kubernetes (TKr) para minimizar su espacio:
Prepare el archivo OVA:
Vaya a VMware Customer Connect e inicie sesión con las credenciales de VMware Customer Connect.
Vaya a Descargas de productos de Tanzu Kubernetes Grid v2.3.1.
En Archivos OVA de TKG Tiny (Tiny TKG OVAs), descargue el archivo OVA Tiny que se utilizará en el clúster de nodo único:
Archivo OVA Tiny Photon v3 Kubernetes v1.26.8
Archivo OVA Tiny Ubuntu 2004 Kubernetes v1.26.8
Importe el archivo OVA Tiny en el entorno de vSphere y conviértalo en una plantilla de máquina virtual como se describe en Importar la plantilla de imagen base en vSphere.
Cree el clúster de carga de trabajo de nodo único.
NotaPara crear un mínimo de clústeres de nodo único, debe ejecutar el comando
tanzu cluster create
con una especificación de objeto de estilo Kubernetes. Si comienza con un archivo de configuración de clúster plano, debe seguir un proceso de dos pasos descrito en Crear un clúster basado en clases para generar la especificación del objeto y, a continuación, editarlo como se describe a continuación antes de ejecutartanzu cluster create
una segunda vez para crear el clúster.
Establezca las variables de entorno como se establece en este ejemplo:
export CLUSTER_NAME='workload-snc'
export CLUSTER_NAMESPACE='default'
export CLUSTER_CIDR='100.96.0.0/11'
export SERVICE_CIDR='100.64.0.0/13'
export VSPHERE_CONTROL_PLANE_ENDPOINT=10.185.11.134
export VSPHERE_SERVER=10.185.12.154
export VSPHERE_USERNAME='[email protected]'
export VSPHERE_PASSWORD=<encoded:QWRtaW4hMjM=>
export VSPHERE_DATACENTER='/dc0'
export VSPHERE_DATASTORE='/dc0/datastore/sharedVmfs-0'
export VSPHERE_FOLDER='/dc0/vm'
export VSPHERE_NETWORK='/dc0/network/VM Network'
export VSPHERE_RESOURCE_POOL='/dc0/host/cluster0/Resources'
export VSPHERE_SSH_AUTHORIZED_KEY=ssh-rsa AAAAB3[...]tyaw== [email protected]
export VSPHERE_TLS_THUMBPRINT=47:F5:83:8E:5D:36:[...]:72:5A:89:7D:29:E5:DA
export VSPHERE_CONTROL_PLANE_NUM_CPUS='2'
export VSPHERE_CONTROL_PLANE_MEM_MIB='4096'
export VSPHERE_CONTROL_PLANE_DISK_GIB='20'
export TKG_CUSTOM_IMAGE_REPOSITORY='projects.registry.vmware.com/tkg'
export OS_NAME='photon'
export TKG_CUSTOM_IMAGE_REPOSITORY_CA_CERTIFICATE="LS0tL[...]0tLQo="
Cree un manifiesto vsphere-snc.yaml
con especificaciones del objeto Cluster
y Secret
que hagan referencia a las variables anteriores:
apiVersion: cluster.x-k8s.io/v1beta1
kind: Cluster
metadata:
annotations:
tkg.tanzu.vmware.com/cluster-controlplane-endpoint: ${VSPHERE_CONTROL_PLANE_ENDPOINT}
run.tanzu.vmware.com/resolve-tkr: 'tkr.tanzu.vmware.com/tiny'
labels:
tkg.tanzu.vmware.com/cluster-name: ${CLUSTER_NAME}
name: ${CLUSTER_NAME}
namespace: ${CLUSTER_NAMESPACE}
spec:
clusterNetwork:
pods:
cidrBlocks:
- ${CLUSTER_CIDR}
services:
cidrBlocks:
- ${SERVICE_CIDR}
topology:
class: tkg-vsphere-default-v1.1.0
controlPlane:
metadata:
annotations:
run.tanzu.vmware.com/resolve-os-image: image-type=ova,os-name=${OS_NAME}
replicas: 1
variables:
- name: controlPlaneTaint
value: false
- name: auditLogging
value:
enabled: false
- name: apiServerEndpoint
value: ${VSPHERE_CONTROL_PLANE_ENDPOINT}
- name: aviAPIServerHAProvider
value: false
- name: imageRepository
value:
host: ${TKG_CUSTOM_IMAGE_REPOSITORY}
- name: trust
value:
additionalTrustedCAs:
- data: ${TKG_CUSTOM_IMAGE_REPOSITORY_CA_CERTIFICATE}
name: imageRepository
- name: vcenter
value:
cloneMode: fullClone
datacenter: ${VSPHERE_DATACENTER}
datastore: ${VSPHERE_DATASTORE}
folder: ${VSPHERE_FOLDER}
network: ${VSPHERE_NETWORK}
resourcePool: ${VSPHERE_RESOURCE_POOL}
server: ${VSPHERE_SERVER}
storagePolicyID: ""
tlsThumbprint: ${VSPHERE_TLS_THUMBPRINT}
- name: user
value:
sshAuthorizedKeys:
- ${VSPHERE_SSH_AUTHORIZED_KEY}
- name: controlPlane
value:
machine:
diskGiB: ${VSPHERE_CONTROL_PLANE_DISK_GIB}
memoryMiB: ${VSPHERE_CONTROL_PLANE_MEM_MIB}
numCPUs: ${VSPHERE_CONTROL_PLANE_NUM_CPUS}
version: v1.26.8+vmware.1-tiny.2
---
apiVersion: v1
kind: Secret
metadata:
name: ${CLUSTER_NAME}
namespace: ${CLUSTER_NAMESPACE}
stringData:
password: ${VSPHERE_PASSWORD}
username: ${VSPHERE_USERNAME}
EOF
Tenga en cuenta lo siguiente:
metadata.annotations
para run.tanzu.vmware.com/resolve-tkr
topology.variables
para controlPlaneTaint
topology.workers
, solo topology.controlPlane
topology.version
debería ser v1.26.5+vmware.1-tiny.2
para v2.3.1,v1.25.7+vmware.1-tiny.1
para v2.2.0, v1.24.10+vmware.1-tiny.1
para v2.1.1 yv1.24.9+vmware.1-tiny.2
para v2.1.0.(Opcional) Para configurar el clúster de modo que use Calico como CNI en lugar de la CNI de Antrea predeterminada, siga las instrucciones para clústeres de nodo único en CNI de Calico para clústeres de carga de trabajo basados en clases de nodo único o supervisor.
Aplique el manifiesto de objeto Cluster
:
tanzu cluster create -f vsphere-snc.yaml
Para crear un clúster de carga de trabajo de nodo único en vSphere que utilice un TKr de Ubuntu o Photon estándar:
Cree un archivo de configuración plano para el clúster de carga de trabajo como se describe en Archivos de configuración de vSphere con clúster de administración independiente.
Ejecute tanzu cluster create
con la marca --dry-run
para convertir el archivo de configuración plano en una especificación de objeto Cluster
estilo Kubernetes, como se describe en Crear una especificación de objeto.
Edite la especificación del objeto Cluster
para incluir la siguiente configuración:
En topology.controlPlane
replicas: 1
Sin bloqueo de topology.workers
; si está presente, elimínelo.
En topology.variables
- name: controlPlaneTaint
value: false
Ejecute tanzu cluster create
con la especificación del objeto Cluster
modificada como se describe en Crear un clúster basado en clases desde la especificación del objeto.