Kubernetes è una piattaforma open source che permette di automatizzare la gestione, il deployment e il scaling delle applicazioni containerizzate. Se stai cercando una guida facile per installare Kubernetes su Linux, sei nel posto giusto. In questo tutorial ti guiderò attraverso il processo di installazione di Kubernetes su una distribuzione Linux, come Ubuntu, e ti mostrerò come configurare gli strumenti essenziali come kubectl, kubeadm e kubelet.
Indice dei contenuti
- 1 Requisiti per installare Kubernetes su Linux
- 2 Passo 1: Installare Docker
- 3 Passo 2: Installare kubelet, kubeadm e kubectl
- 4 Passo 3: Disabilitare lo swap
- 5 Passo 4: Inizializzare il cluster con kubeadm
- 6 Passo 5: Configurare la rete del cluster
- 7 Passo 6: Aggiungere nodi al cluster
- 8 Passo 7: Verificare lo stato del cluster
- 9 Passo 8: Installare un’applicazione su Kubernetes
- 10 Conclusioni
Requisiti per installare Kubernetes su Linux
Prima di iniziare l’installazione, assicurati di avere i seguenti requisiti per installare Kubernetes:
- Un server con una distribuzione Linux (come Ubuntu 20.04 o 22.04).
- Accesso come utente root o con privilegi sudo.
- Almeno 2 CPU e 2 GB di RAM per ogni nodo.
- Connessione internet stabile.
- Una rete configurata correttamente con connessioni tra i nodi.
- Swap disabilitato. Kubernetes non funziona correttamente se lo swap è abilitato.
Una volta verificati questi requisiti, possiamo procedere con l’installazione.
Passo 1: Installare Docker
Kubernetes utilizza Docker (o un altro container runtime) per eseguire i container. Il primo passo è quindi installare Docker. Apri il terminale e segui i passaggi seguenti per installarlo:
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates
curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update sudo apt-get install -y docker-ce
Una volta installato Docker, verifica che sia in esecuzione con il seguente comando:
sudo systemctl status docker
Se tutto è corretto, vedrai che Docker è attivo e in esecuzione.
Passo 2: Installare kubelet, kubeadm e kubectl
Kubernetes richiede tre componenti principali: kubelet, kubeadm e kubectl. Ecco come installarli.
Prima di tutto, aggiungi il repository Kubernetes:
sudo apt-get update sudo
apt-get install -y apt-transport-https curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - sudo bash -c 'cat <<EOF >/etc/apt/sources.list.d/kubernetes.list deb https://apt.kubernetes.io/ kubernetes-xenial main EOF'
sudo apt-get update
Ora installa kubelet, kubeadm e kubectl con il seguente comando:
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
Il comando apt-mark hold assicura che questi pacchetti non vengano aggiornati automaticamente, evitando possibili problemi di compatibilità.
Passo 3: Disabilitare lo swap
Kubernetes richiede che lo swap sia disabilitato sul sistema. Puoi farlo temporaneamente con il seguente comando:
sudo swapoff -a
Per disabilitarlo permanentemente, modifica il file /etc/fstab e commenta (aggiungi un #
all’inizio della linea) la linea che riguarda lo swap.
Passo 4: Inizializzare il cluster con kubeadm
Una volta installati tutti i componenti, è il momento di inizializzare il cluster Kubernetes. Puoi farlo eseguendo il comando kubeadm init. Questo comando configurerà il master node, che gestisce il cluster.
sudo kubeadm init
Al termine dell’inizializzazione, kubeadm ti fornirà un comando simile a questo, che dovrai copiare per aggiungere i worker node al cluster:
kubeadm join 192.168.1.100:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Segui le istruzioni che appariranno per configurare kubectl. Per l’utente corrente, esegui i seguenti comandi per configurare l’accesso al cluster:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Passo 5: Configurare la rete del cluster
Una volta che il master node è stato inizializzato, è necessario configurare la rete del cluster. Kubernetes utilizza vari plugin per il networking. Uno dei più comuni è Calico. Ecco come installarlo:
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
Questo comando scaricherà e installerà il plugin Calico, che consente ai pod di comunicare tra loro.
Passo 6: Aggiungere nodi al cluster
Ora che il master è pronto, puoi aggiungere altri nodi al cluster. Usa il comando che hai ottenuto durante l’inizializzazione del cluster (quello che inizia con kubeadm join) e eseguilo sui nodi worker.
Se hai perso il comando kubeadm join, puoi rigenerarlo sul master con il seguente comando:
kubeadm token create --print-join-command
Passo 7: Verificare lo stato del cluster
Una volta aggiunti i nodi al cluster, puoi verificare che tutto funzioni correttamente eseguendo il seguente comando:
kubectl get nodes
Dovresti vedere una lista di nodi con lo stato “Ready”. Questo indica che il cluster è configurato correttamente e pronto per l’uso.
Passo 8: Installare un’applicazione su Kubernetes
Ora che hai il tuo cluster Kubernetes funzionante, puoi installare una delle tue applicazioni containerizzate. Per esempio, per eseguire una semplice applicazione nginx, puoi usare i seguenti comandi:
kubectl create deployment nginx --image=nginx kubectl expose deployment nginx --port=80 --type=NodePort
Questo creerà un deployment nginx e lo esporrà su una porta del nodo.
Conclusioni
Installare Kubernetes su Linux può sembrare complicato, ma seguendo questa guida passo-passo, il processo diventa molto più semplice. Dopo aver installato Docker, kubelet, kubeadm e kubectl, sarai in grado di creare il tuo cluster Kubernetes e aggiungere nodi worker. Con Kubernetes, puoi scalare le tue applicazioni in modo efficiente e gestire migliaia di container su diversi server. Questo tutorial ti fornisce una solida base per iniziare con Kubernetes su Linux, sia per test che per ambienti di produzione.
Non dimenticare di tenere aggiornati i componenti del tuo cluster e di monitorare le sue prestazioni per garantire che tutto funzioni correttamente.