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
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