Aby zainstalować i wdrożyć klaster Kubernetes na Ubuntu, należy wykonać kilka kroków obejmujących przygotowanie systemu, instalację komponentów Kubernetes oraz inicjalizację klastra. Poniżej znajduje się szczegółowy, aktualny poradnik krok po kroku z wyjaśnieniami każdego etapu.
1. Przygotowanie serwerów
Wszystkie poniższe komendy wykonuj na wszystkich węzłach klastra – zarówno na kontrol-plane (master), jak i workerach.
- Aktualizacja systemu –
sudo apt update && sudo apt upgrade -y
- Wyłączenie swapu –
Kubernetes wymaga, by swap był wyłączony.
sudo swapoff -a sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
- Załadowanie wymaganych modułów kernela – Utwórz plik konfiguracyjny i dodaj moduły:
echo -e "overlay\nbr_netfilter" | sudo tee /etc/modules-load.d/containerd.conf sudo modprobe overlay sudo modprobe br_netfilter
- Konfiguracja parametrów sysctl dla Kubernetes –
cat <<EOF | sudo tee /etc/sysctl.d/kubernetes.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1 EOF sudo sysctl --system
Upewnij się, że ustawienia są załadowane.
2. Instalacja Kubernetes
Kubernetes składa się z kilku kluczowych komponentów: kubeadm (narzędzie do instalacji klastra), kubelet (agent na każdym węźle) oraz kubectl (narzędzie do zarządzania klastrem).
- Dodanie repozytorium Kubernetes –
sudo apt update sudo apt install -y apt-transport-https ca-certificates curl sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list sudo apt update
- Instalacja komponentów Kubernetes –
sudo apt install -y kubelet kubeadm kubectl sudo apt-mark hold kubelet kubeadm kubectl
Pozwoli to uniknąć ich automatycznych aktualizacji, co może powodować niekompatybilność.
- Sprawdzenie wersji –
kubeadm version kubectl version --client kubelet --version
3. Konfiguracja sieci i hostów
- Każdy węzeł powinien mieć unikalną nazwę hosta oraz statyczny adres IP.
Przykład zmiany hosta:
sudo hostnamectl set-hostname nazwa-hostname
4. Inicjalizacja klastra na węźle kontrolnym (master)
- Inicjalizacja klastra – Wykonaj na węźle kontrolnym:
sudo kubeadm init --pod-network-cidr=192.168.0.0/16
Parametr --pod-network-cidr
jest wymagany przez większość pluginów sieciowych (np. Flannel, Calico).
- Konfiguracja użytkownika do zarządzania klastrem –
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
Teraz możesz używać kubectl do zarządzania klastrem z poziomu użytkownika.
5. Instalacja wtyczki sieciowej (CNI)
Kubernetes wymaga pluginu sieciowego, by podłączane węzły mogły komunikować się w sieci podów.
- Przykład instalacji Flannel –
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
Alternatywnie możesz użyć innego rozwiązania sieciowego, np. Calico.
6. Dołączanie węzłów roboczych do klastra
Na każdym węźle roboczym (worker) uruchom komendę, którą wyświetlił kubeadm podczas inicjalizacji klastra (na masterze):
sudo kubeadm join <master-ip>:<port> --token <token> --discovery-token-ca-cert-hash sha256:<hash>
Polecenie znajdziesz także w pliku /etc/kubernetes/admin.conf
lub wywołując na masterze:
kubeadm token create --print-join-command
Po chwili sprawdź status podłączonych węzłów:
kubectl get nodes
7. Weryfikacja wdrożenia klastra
- Sprawdź stan klastra –
kubectl get nodes kubectl get pods --all-namespaces
Składniki Kubernetes — wyjaśnienia
- Control Plane – centralna część klastra zarządzająca harmonogramem podów, skalowaniem i kontrolą stanu.
- etcd – rozproszona, spójna baza danych trzymająca konfigurację i stan klastra.
- Kubelet – agent zarządzający podami na każdym węźle.
- kubectl – narzędzie klienckie do zarządzania klastrem.
Podsumowanie
Instalacja Kubernetes na Ubuntu jest procesem kilkuetapowym: przygotowanie systemu, instalacja pakietów, inicjalizacja klastra, instalacja sieci oraz dołączanie węzłów roboczych. Zastosowanie powyższego poradnika pozwala wdrożyć w pełni funkcjonalny klaster Kubernetes gotowy do zarządzania aplikacjami kontenerowymi.