Deploy TKG Standalone Cluster – parte 1

Ho avuto il piacere di partecipare alla scorsa UserCon Italiana portando una sessione su Tanzu Kubernetes Grid e la creazione di un cluster di management standalone. Ho preso spunto dall’esperienza per creare una serie di articoli sull’argomento.

Come già detto questa serie di articoli è su TKG Standalone versione 2.4.0, è bene precisare che la soluzione più comune da utilizzare è TKG Supervisor (si veda la documentazione ufficiale a riguardo).

Ma allora quando ha senso utilizzare TKG Standalone?

  • Quando utilizziamo AWS o Azure
  • Quando utilizziamo vSphere 6.7 (vsphere with Tanzu è stata introdotta solo dalla versione 7)
  • Quando utilizziamo vSphere 7 e 8 ma necessitiamo delle seguenti features : Windows Containers, IPv6 dual stack e la creazione di workload cluster su siti remoti gestiti da un vcenter server  centralizzato

Vediamo i requisiti per la creazione di TKG Standalone:

  • una bootstrap machine
  • una delle seguenti infrastrutture:  vSphere 8, vSphere 7, VMware Cloud on AWS, or Azure VMware Solution

Ho riportato solo i principali requisiti, per tutti i dettagli fate riferimento al link ufficiale.

Dimensionamento del Cluster di Management

Di seguito una tabella che riporta quali risorse allocare per i nodi del cluster di management in base al numero di cluster di workload da gestire.

Per poter creare il cluster di management è necessario importare le immagini da utilizzare per i nodi, le immagini sono disponibili dai downlaod del sito vmware.

Consiglio di utilizzare le utlime versioni disponibili:

  • Ubuntu v20.04 Kubernetes v1.27.5 OVA
  • Photon v3 Kubernetes v1.27.5 OVA

Una volta importata l’immagine è necessario convertirla in template.

Creiamo la nostra bootstrap machine

Forse è la parte più divertente 🙂 io ho scelto un sistema operativo Linux, nello specifico Ubuntu server 20.04.

I requisiti consigliati per la bootstrap machine sono i seguenti : 16GB di RAM, 4 cpu e almeno 50GB di spazio disco.

Ecco i dettagli della mia

Aggiornare all’ultimo pacchetto disponibile

sudo apt update
sudo apt upgrade

E’ importante che la data e l’ora siano sincronizzati via NTP

Se si utilizza la bootstrap machine in ambiente isolato è utile installare anche l’ambiente grafico per poter utilizzare un browser ed altri strumenti grafici.

apt install tasksel
tasksel install ubuntu-desktop
reboot

Installare Docker

Manage Docker as a non-root user

sudo groupadd docker
sudo usermod -aG docker $USER
docker run hello-world

Configure Docker per avviarsi automaticamente con systemd

sudo systemctl enable docker.service
sudo systemctl enable containerd.service

Attivare kind

sudo modprobe nf_conntrack

Installare Tanzu CLI 2.4

Verificare via Product Interoperability Matrix quale versione è compatibile con TKG 2.4

Identificata la versione compatibile è possibile scaricarla dal sito vmware

Procedere all’installazione della CLI nella bootstrap machine (come utente non root)

mkdir tkg
cd tkg
wget https://download3.vmware.com/software/TCLI-100/tanzu-cli-linux-amd64.tar.gz
tar -xvf tanzu-cli-linux-amd64.tar.gz
cd v1.0.0
sudo install tanzu-cli-linux_amd64 /usr/local/bin/tanzu
tanzu version

Installare i plugins TKG

tanzu plugin group search -n vmware-tkg/default --show-details
tanzu plugin install --group vmware-tkg/default:v2.4.0
tanzu plugin list

Scaricare ed installare nella bootstrap machine la kubernetes CLI per Linux

cd tkg
gunzip kubectl-linux-v1.27.5+vmware.1.gz
chmod ugo+x kubectl-linux-v1.27.5+vmware.1
sudo install kubectl-linux-v1.27.5+vmware.1 /usr/local/bin/kubectl
kubectl version --short --client=true

Abilitiamo l’autocompletamento per kubectl e Tanzu CLI

echo 'source <(kubectl completion bash)' >> ~/.bash_profile

echo 'source <(tanzu completion bash)' >> ~/.bash_profile

Come ultima cosa generiamo le chiavi SSH da utilizzare nel wizard di creazione del cluster di management

ssh-keygen
cat ~/.ssh/id_rsa.pub

Con quest’ultima operazione abbiamo completato la prima parte dell’articolo.

La seconda parte è disponibile a questo link

Questa voce è stata pubblicata in kubernetes, tanzu e contrassegnata con , . Contrassegna il permalink.