Tanzu Kubernetes Grid (TKG) prend en charge les clusters à nœud unique. Les clusters à nœud unique sont des clusters de charge de travail sur lesquels les charges de travail hébergées s'exécutent parallèlement à l'infrastructure de plan de contrôle sur un hôte ESXi unique.
Pour réduire davantage l'encombrement d'un cluster à nœud unique, vous pouvez le créer à partir d'une version tiny
de Tanzu Kubernetes (TKr), qui dispose d'un fichier OVA Photon ou Ubuntu Tiny pour son système d'exploitation de base. Ces clusters sont appelés clusters minimaux à nœud unique.
Les clusters à nœud unique sont des clusters de charge de travail basés sur une classe qui s’exécutent sur vSphere et sont déployés par des clusters de gestion autonomes.
Les clusters à nœud unique sont entièrement pris en charge pour Telco Cloud Automation (TCA).
RemarqueVous ne pouvez pas utiliser Tanzu Mission Control (TMC) pour créer et gérer des clusters à nœud unique, mais cette capacité est prévue pour une future version de TMC.
Les cas d'utilisation de clusters à nœud unique incluent :
Les clusters à nœud unique sont pris en charge pour les environnements et composants suivants :
Catégorie | Options prises en charge |
---|---|
Infrastructure | vSphere 7 et vSphere 8 |
Système d'exploitation du nœud | Ubuntu 20.04 et Photon 3 |
Taille du nœud | petit |
Module | Gestionnaire de certificats, Fluent Bit, Multus, Prometheus et Whereabouts |
Fournisseur de point de terminaison du plan de contrôle | Kube-Vip* |
Équilibrage de charge de travail | Kube-Vip* |
Type de cluster de charge de travail | Basé sur une classe |
CNI | Antrea et Calico |
Mode de connectivité | En ligne, accès restreint à Internet |
*NSX Advanced Load Balancer (ALB) n'est pas pris en charge avec les clusters à nœud unique dans TKG v2.4.
kubectl
Pour créer un cluster de charge de travail à nœud unique sur vSphere qui utilise une version tiny
de Tanzu Kubernetes (TKr) afin de réduire l'encombrement :
Préparer le fichier OVA :
Accédez à la page de téléchargements de Tanzu Kubernetes Grid et connectez-vous à Customer Connect.
Dans la ligne VMware Tanzu Kubernetes Grid, cliquez sur Accéder aux téléchargements (Go to Downloads).
Sélectionnez la version 2.x
et cliquez sur VMware Tanzu Kubernetes Grid > ACCÉDER AUX TÉLÉCHARGEMENTS (GO TO DOWNLOADS).
Sous Fichiers OVA TKG tiny (Tiny TKG OVAs), téléchargez le fichier OVA tiny à utiliser pour votre cluster à nœud unique :
Fichier OVA Photon v3 Kubernetes v1.27.5 tiny
Fichier OVA Ubuntu 2004 Kubernetes v1.27.5 tiny
Importez le fichier OVA tiny dans votre environnement vSphere et convertissez-le en modèle de machine virtuelle, comme décrit dans la section Importer le modèle d'image de base dans vSphere.
Créez le cluster de charge de travail à nœud unique.
RemarquePour créer un nombre minimal de clusters à nœud unique, vous devez exécuter la commande
tanzu cluster create
avec une spécification d'objet de style Kubernetes. Si vous commencez par un fichier de configuration de cluster plat, vous devez suivre un processus en deux étapes décrit dans la section Créer un cluster basé sur une classe pour générer la spécification d'objet, puis la modifier, comme décrit ci-dessous avant d'exécutertanzu cluster create
une deuxième fois pour créer le cluster.
Définissez les variables d'environnement comme définies dans cet exemple :
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="
Créez un manifeste vsphere-snc.yaml
avec les spécifications d'objets Cluster
et Secret
faisant référence aux variables ci-dessus :
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.1
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.27.5+vmware.1-tiny.2
---
apiVersion: v1
kind: Secret
metadata:
name: ${CLUSTER_NAME}
namespace: ${CLUSTER_NAMESPACE}
stringData:
password: ${VSPHERE_PASSWORD}
username: ${VSPHERE_USERNAME}
EOF
Notez les points suivants :
metadata.annotations
pour run.tanzu.vmware.com/resolve-tkr
topology.variables
pour controlPlaneTaint
topology.workers
, uniquement topology.controlPlane
topology.version
doit être v1.25.7+vmware.1-tiny.1
pour la version v2.2.0, v1.24.10+vmware.1-tiny.1
pour la version v2.1.1 et v1.24.9+vmware.1-tiny.2
pour la version v2.1.0.(Facultatif) Pour configurer le cluster afin qu'il utilise Calico comme CNI, plutôt que la CNI Antrea par défaut, suivez les instructions pour les clusters à nœud unique dans la section CNI Calico pour les clusters de charge de travail superviseurs ou basés sur une classe à nœud unique.
Appliquez le manifeste d'objet Cluster
:
tanzu cluster create -f vsphere-snc.yaml
Pour créer un cluster de charge de travail à nœud unique sur vSphere qui utilise une version TKr Photon ou Ubuntu standard :
Créez un fichier de configuration plat pour le cluster de charge de travail, comme décrit dans la section Fichiers de configuration de vSphere avec un cluster de gestion autonome.
Exécutez tanzu cluster create
avec l'indicateur --dry-run
pour convertir le fichier de configuration plat en une spécification d'objet Cluster
de style Kubernetes, comme décrit dans la section Créer une spécification d'objet.
Modifiez la spécification d'objet Cluster
pour inclure les paramètres suivants :
Sous topology.controlPlane
:
replicas: 1
Aucun bloc topology.workers
; s'il en existe un, supprimez-le.
Sous topology.variables
:
- name: controlPlaneTaint
value: false
Exécutez tanzu cluster create
avec la spécification d'objet Cluster
modifiée, comme décrit dans la section Créer un cluster basé sur une classe à partir de la spécification d'objet.