Tanzu Kubernetes Grid (TKG) supporta cluster a nodo singolo. I cluster a nodo singolo sono cluster del carico di lavoro in cui i carichi di lavoro ospitati vengono eseguiti insieme all'infrastruttura del piano di controllo in un singolo host ESXi.
Per ridurre ulteriormente il footprint di un cluster a singolo nodo, è possibile crearlo da una tiny
versione di Tanzu Kubernetes (TKr), che ha come sistema operativo di base un OVA di Photon o Ubuntu Tiny. Tali cluster sono chiamati cluster minimi a nodo singolo.
I cluster a nodo singolo sono cluster del carico di lavoro basati sulla classe eseguiti in vSphere e vengono distribuiti da cluster di gestione autonomi.
I cluster a nodo singolo sono completamente supportati per Telco Cloud Automation (TCA).
NotaNon è possibile utilizzare Tanzu Mission Control (TMC) per creare e gestire cluster con un nodo singolo, ma questa funzione è pianificata per una versione futura di TMC.
I casi d'uso del cluster a nodo singolo includono:
I cluster a nodo singolo sono supportati per i seguenti ambienti e componenti:
Categoria | Opzioni supportate |
---|---|
Infrastruttura | vSphere 7, vSphere 8 |
Sistema operativo del nodo | Ubuntu 20.04, Photon 3 |
Dimensioni nodo | piccolo |
Pacchetto | Cert Manager, Fluent Bit, Multus, Prometheus, Whereabouts |
Fornitore dell'endpoint del piano di controllo | Kube-Vip* |
Bilanciamento del carico di lavoro | Kube-Vip* |
Tipo di cluster del carico di lavoro | Basato sulla classe |
CNI | Antrea, Calico |
Modalità di connettività | Online, con limitazioni Internet |
*NSX Advanced Load Balancer (ALB) non è supportato con i cluster a nodo singolo in TKG v2.3.
kubectl
Per creare un cluster di carichi di lavoro a singolo nodo su vSphere che utilizza una tiny
versione di Tanzu Kubernetes release (TKr) per ridurre al minimo la footprint:
Preparare l'OVA:
Passare a VMware Customer Connect e accedere con le credenziali di VMware Customer Connect.
Passare a Download dei prodotti Tanzu Kubernetes Grid v2.3.1.
In Tiny TKG OVA (Tiny TKG OVAs), scaricare il file Tiny OVA da utilizzare per il cluster a nodo singolo:
Photon v3 Kubernetes v1.26.8 Tiny OVA
Ubuntu 2004 Kubernetes v1.26.8 Tiny OVA
Importare il file OVA di piccole dimensioni nell'ambiente vSphere e convertirlo in Importazione del modello dell'immagine di base in vSphere.
Creare il cluster del carico di lavoro a nodo singolo.
NotaPer creare cluster minimi a nodo singolo, è necessario eseguire il comando
tanzu cluster create
con una specifica dell'oggetto di tipo Kubernetes. Se si inizia con un file di configurazione del cluster flat, è necessario eseguire un processo in due passaggi descritto in Creazione di un cluster basato sulla classe per generare la specifica dell'oggetto e quindi modificarla come descritto di seguito prima di eseguiretanzu cluster create
una seconda volta per creare il cluster.
Impostare le variabili di ambiente come impostate in questo esempio:
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="
Creare un manifesto vsphere-snc.yaml
con specifiche degli oggetti Cluster
e Secret
che fanno riferimento alle variabili precedenti:
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
Si tenga presente quanto segue:
metadata.annotations
per run.tanzu.vmware.com/resolve-tkr
topology.variables
per controlPlaneTaint
topology.workers
ma solo topology.controlPlane
topology.version
deve essere v1.26.5+vmware.1-tiny.2
per v2.3.1, v1.25.7+vmware.1-tiny.1
per v2.2.0, v1.24.10+vmware.1-tiny.1
per v2.1.1 e v1.24.9+vmware.1-tiny.2
per v2.1.0.(Facoltativo) Per configurare il cluster in modo che usi Calico come CNI invece della CNI predefinita di Antrea, seguire le istruzioni per i cluster a nodo singolo in CNI Calico per supervisore o cluster di carichi di lavoro basati su classi a nodo singolo.
Applicare il manifesto dell'oggetto Cluster
:
tanzu cluster create -f vsphere-snc.yaml
Per creare un cluster del carico di lavoro con un nodo singolo in vSphere che utilizza un Photon standard o Ubuntu TKr:
Creare un file di configurazione piatto per il cluster del carico di lavoro come descritto in vSphere con i file di configurazione del cluster di gestione autonomo.
Eseguire tanzu cluster create
con il flag --dry-run
per convertire il file di configurazione piatto in una specifica di oggetto del Cluster
di tipo Kubernetes, come descritto in Creazione di una specifica di oggetto.
Modificare la specifica dell'oggetto Cluster
in modo che includa le seguenti impostazioni:
In topology.controlPlane
replicas: 1
Nessun blocco topology.workers
; se presente, eliminarlo.
In topology.variables
- name: controlPlaneTaint
value: false
Eseguire tanzu cluster create
con la specifica dell'oggetto Cluster
modificata come descritto in Creazione di un cluster basato sulla classe dalla specifica di un oggetto.