Fare riferimento a queste istruzioni per installare e configurare il pacchetto di Cluster Autoscaler utilizzando la CLI di Tanzu.
Requisiti
- La versione di vSphere minima richiesta è vSphere 8 U3, inclusi gli host vCenter ed ESXi
- La versione di TKr minima è TKr 1.27.x per vSphere 8
- La versione secondaria di TKr e la versione secondaria del pacchetto di Cluster Autoscaler devono corrispondere
Configurazione di Spazio dei nomi vSphere
Per eseguire il provisioning di un cluster TKG, completare le attività preliminari seguenti.
- Installare o aggiornare l'ambiente a vSphere 8 U3 e TKr 1.27.x per vSphere 8.
- Creare o aggiornare una libreria di contenuti con più Release di Tanzu Kubernetes. Vedere Amministrazione delle versioni di Kubernetes per i cluster Servizio TKG.
- Creare e configurare uno Spazio dei nomi vSphere che ospiti il cluster TKG. Vedere Configurazione di Spazi dei nomi vSphere per l'hosting di cluster Servizio TKG.
- Installare Strumenti CLI Kubernetes di vSphere.
L'esempio seguente può essere utilizzato per installare gli strumenti dalla riga di comando. Per ulteriori istruzioni, vedere Installazione di Strumenti CLI Kubernetes di vSphere..
wget https://SUPERVISOR-IP-or-FQDN/wcp/plugin/linux-amd64/vsphere-plugin.zip unzip vsphere-plugin.zip chmod +x bin/kubectl* mv bin/kubectl* /usr/bin/kubectl vsphere --help rm ~/.kube/config kubectl vsphere login --insecure-skip-tls-verify --server SUPERVISOR-IP-or-FQDN --tanzu-kubernetes-cluster-namespace VSPHERE-NAMESPACE --vsphere-username VSPHERE-USER kubectl config use-context VSPHERE-NAMESPACE
- Eseguire
kubectl
ekubectl vsphere
per verificare l'installazione.
Creazione di un cluster TKG con annotazioni di Autoscaler
Seguire le istruzioni per creare un cluster TKG. Per ulteriori istruzioni, vedere Workflow per il provisioning dei cluster TKG utilizzando Kubectl.
- Eseguire l'autenticazione con Supervisore utilizzando kubectl.
kubectl vsphere login --server=SUPERVISOR-CONTROL-PLANE-IP-ADDRESS-or-FQDN --vsphere-username USERNAME
- Passare al contesto dello Spazio dei nomi vSphere di destinazione che ospiterà il cluster.
kubectl config use-context tkgs-cluster-namespace
- Recuperare l'elenco delle classi di macchine virtuali disponibili in Spazio dei nomi vSphere.
È possibile utilizzare solo classi di macchine virtuali associate allo Spazio dei nomi vSphere di destinazione. Vedere Utilizzo di classi di macchine virtuali con i cluster Servizio TKG.
- Recuperare l'elenco delle classi di storage dei volumi persistenti disponibili.
kubectl describe namespace VSPHERE-NAMESPACE-NAME
Il comando restituisce i dettagli relativi allo Spazio dei nomi vSphere, inclusa la classe di storage. Il comando
kubectl describe storageclasses
restituisce anche classi di storage disponibili, ma richiede autorizzazioni di amministratore vSphere. - Elencare le Release di Tanzu Kubernetes disponibili.
kubectl get tkr
Questo comando restituisce le TKr disponibili in questo Spazio dei nomi vSphere e la loro compatibilità. Vedere Amministrazione delle versioni di Kubernetes per i cluster Servizio TKG.
- Utilizzare le informazioni raccolte per creare un file YAML delle specifiche del cluster TKG con la configurazione di Cluster Autoscaler richiesta.
- Utilizzare le annotazioni
*-min-size
e*-max-size
per i nodePool worker. In questo esempio, 3 è il numero minimo e 5 è il numero massimo di nodi worker che è possibile scalare. Per impostazione predefinita, il cluster verrà creato con 3 nodi worker. - Utilizzare la versione secondaria corrispondente per il pacchetto di TKr e Autoscaler.
- I valori
metadata.name
emetadata.namespace
del cluster utilizzati sono coerenti con i valori predefiniti del pacchetto di Autoscaler. Se si modificano questi valori nella specifica del cluster, sarà necessario modificarli inautoscaler-data-values
(vedere di seguito).
#cc-autoscaler.yaml apiVersion: cluster.x-k8s.io/v1beta1 kind: Cluster metadata: name: tkc namespace: cluster spec: clusterNetwork: pods: cidrBlocks: - 192.0.2.0/16 serviceDomain: cluster.local services: cidrBlocks: - 198.51.100.0/12 topology: class: tanzukubernetescluster controlPlane: metadata: {} replicas: 3 variables: - name: storageClasses value: - wcpglobal-storage-profile - name: vmClass value: guaranteed-medium - name: storageClass value: wcpglobal-storage-profile #minor versions must match version: v1.27.11---vmware.1-fips.1-tkg.2 workers: machineDeployments: - class: node-pool metadata: annotations: cluster.x-k8s.io/cluster-api-autoscaler-node-group-min-size: "3" cluster.x-k8s.io/cluster-api-autoscaler-node-group-max-size: "5" name: np-1
- Utilizzare le annotazioni
- Applicare la specifica del cluster.
kubectl apply -f cc-autoscaler.yaml
- Verificare la creazione del cluster.
kubectl get cluster,vm
- Verificare la versione del nodo del cluster.
kubectl get node
Creazione del repository dei pacchetti nel cluster TKG.
- Installare la CLI di Tanzu.
Vedere Installazione della CLI di Tanzu per l'utilizzo con i cluster Servizio TKG.
- Accedere al cluster.
rm ~/.kube/config kubectl vsphere login --insecure-skip-tls-verify --server 192.168.0.2 --tanzu-kubernetes-cluster-namespace autoscaler --vsphere-username [email protected] --tanzu-kubernetes-cluster-name cckubectl config use-context cc
- Creare il repository dei pacchetti.
#Standard package repository URL might change depending on the required cluster autoscaler version tanzu package repository add standard-repo --url projects.registry.vmware.com/tkg/packages/standard/repo:v2024.4.12 -n tkg-system tanzu package available list -n tkg-system tanzu package available get cluster-autoscaler.tanzu.vmware.com -n tkg-system
Installazione del pacchetto di Autoscaler
kube-system
.
- Generare
values.yaml
predefinito utilizzando il comando della CLI di Tanzu.tanzu package available get cluster-autoscaler.tanzu.vmware.com/1.27.2+vmware.1-tkg.3 -n tkg-system --default-values-file-output values.yaml
- Aggiornare
values.yaml
per l'installazione del pacchetto.arguments: ignoreDaemonsetsUtilization: true maxNodeProvisionTime: 15m maxNodesTotal: 0 metricsPort: 8085 scaleDownDelayAfterAdd: 10m scaleDownDelayAfterDelete: 10s scaleDownDelayAfterFailure: 3m scaleDownUnneededTime: 10m clusterConfig: clusterName: "tkc" clusterNamespace: "cluster" paused: false
- Installare il pacchetto di Cluster Autoscaler tramite la CLI di Tanzu.
tanzu package install cluster-autoscaler-pkgi -n tkg-system --package cluster-autoscaler.tanzu.vmware.com --version 1.27.2+vmware.1-tkg.3 --values-file values.yaml
Test di Cluster Autoscaler
Per testare Cluster Autoscaler, distribuire un'applicazione, aumentare il numero di repliche e verificare che vengano utilizzati nodi worker aggiuntivi per gestire il carico aggiuntivo.
Aggiornamento di un cluster ridimensionato automaticamente
Per aggiornare un cluster ridimensionato automaticamente, è innanzitutto necessario sospendere il pacchetto di Autoscaler.
Vedere Aggiornamento del cluster sottoposto ad Autoscaler tramite la CLI di Tanzu.