Introduzione
La configurazione di Kubernetes su Ubuntu è un viaggio che trasforma la tua infrastruttura in un potente centro di orchestrazione dei container, consentendoti di distribuire, scalare e gestire i container di applicazioni su un cluster di macchine. Kubernetes, noto anche come K8, automatizza la distribuzione, il dimensionamento e il funzionamento dei contenitori di applicazioni, semplificando la gestione delle applicazioni da parte di sviluppatori e amministratori di sistema.
Questo articolo fornisce una guida completa alla configurazione di Kubernetes su Ubuntu, coprendo tutto, dall'installazione al funzionamento. Che tu stia configurando un cluster a nodo singolo per lo sviluppo o un cluster a nodo multiplo per la produzione, questa guida ti guiderà attraverso i passaggi necessari per rendere operativo il tuo cluster Kubernetes.
Prerequisiti
Prima di iniziare, assicurati di avere:
- Una o più macchine che eseguono Ubuntu 18.04 LTS o versioni successive, ciascuna con almeno 2 GB di RAM e 2 CPU.
- Un account utente con privilegi sudo su ogni macchina.
- Le macchine sono collegate in rete tra loro, in grado di comunicare tra loro.
Passaggio 1: preparare l'ambiente
Aggiorna il tuo sistema : inizia aggiornando il tuo sistema per assicurarti che tutti i pacchetti siano aggiornati.
sudo apt-get update
sudo apt-get upgrade -y
Installa Docker : Kubernetes utilizza Docker come runtime del contenitore. Installa Docker su ogni macchina.
sudo apt-get install docker.io -y
Dopo l'installazione, aggiungi il tuo utente al gruppo Docker per eseguire i comandi Docker senza sudo.
sudo usermod -aG docker $USER
Disabilita scambio : Kubernetes richiede di disabilitare lo scambio su ogni macchina.
sudo swapoff -a
Per rendere permanente questa modifica, commentare qualsiasi voce di swap in /etc/fstab.
Passaggio 2: installa i componenti Kubernetes
Aggiungi repository Kubernetes : aggiungi il repository dei pacchetti Kubernetes a ogni macchina.
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
Installa Kubernetes: installa kubeadm, kubelet e kubectl su ogni macchina.
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
Blocca le loro versioni per impedire gli aggiornamenti automatici.
sudo apt-mark hold kubelet kubeadm kubectl
Passaggio 3: inizializza il cluster
Sul nodo master inizializza il cluster utilizzando kubeadm.
sudo kubeadm init --pod-network-cidr=192.168.0.0/16
Dopo l'inizializzazione, segui le istruzioni visualizzate sullo schermo per iniziare a utilizzare il cluster. Ciò in genere comporta l'esecuzione dei seguenti comandi come utente normale.
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Passaggio 4: installa una rete Pod
Installa un componente aggiuntivo della rete pod sul tuo cluster in modo che i tuoi pod possano comunicare tra loro. Calico è una scelta popolare che può essere installata con:
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
Passaggio 5: unisci i nodi al cluster
Per aggiungere nodi di lavoro al tuo cluster, utilizza il comando kubeadm join fornito alla fine del processo di inizializzazione del master. Esegui questo comando su ciascun nodo di lavoro.
sudo kubeadm join <master-ip>:<port> --token <token> --discovery-token-ca-cert-hash sha256:<hash>
Passaggio 6: distribuire le applicazioni
Con il tuo cluster attivo e funzionante, sei pronto per distribuire le applicazioni. Puoi iniziare distribuendo una semplice applicazione utilizzando un file YAML di distribuzione.
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
Applicare questa distribuzione utilizzando: kubectl apply -f <filename>.yaml
.
Passaggio 7: ridimensiona e gestisci il tuo cluster
Scala le tue applicazioni regolando il numero di repliche nella tua distribuzione e gestisci le risorse del tuo cluster utilizzando kubectl, lo strumento da riga di comando di Kubernetes. Esplora distribuzioni più complesse, configura Kubernetes Dashboard per una GUI e considera l'installazione di Helm per la gestione dei pacchetti.
Conclusione
Congratulazioni! Hai configurato con successo un cluster Kubernetes su Ubuntu. Questo cluster è ora pronto per la distribuzione delle applicazioni. Ricorda, Kubernetes è uno strumento potente e c'è molto altro da imparare sulle sue caratteristiche e capacità. Sperimenta la distribuzione di diverse applicazioni, il loro ridimensionamento e l'esplorazione delle numerose funzionalità di Kubernetes per acquisire dimestichezza nella gestione dei tuoi ambienti containerizzati.