Если облако не ваш выбор, а хочется полного контроля над железом - Kubernetes на bare-metal отличный вариант. В этом посте будет описан базовый путь, как развернуть свой кластер на физических серверах с нуля.
⭐️ Что потребуется:
Один мастер-узел (control plane)
Один или более worker-узлов
Ubuntu Server 22.04+ (или другой поддерживаемый дистрибутив)
Сеть с доступом между узлами (ssh + порты k8s)
root или sudo-доступ
1️⃣ Подготовка ОС. На всех узлах:
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl apt-transport-https ca-certificates software-properties-common
Выключаем swap (Kubernetes его не любит):
sudo swapoff -a
sudo sed -i '/swap/d' /etc/fstab
2️⃣ Установка container runtime (например, containerd)
sudo apt install -y containerd
sudo mkdir -p /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml > /dev/null
sudo systemctl restart containerd
3️⃣ Установка kubeadm, kubelet и kubectl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
sudo add-apt-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"
sudo apt update
sudo apt install -y kubeadm kubelet kubectl
sudo apt-mark hold kubeadm kubelet kubectl
4️⃣Инициализация мастер-узла. На мастер-ноде:
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
После успешной инициализации:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
5️⃣ Установка сетевого плагина (например, Flannel)
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
6️⃣ Подключение worker-нод. На каждом worker-узле выполните команду, которую выдал kubeadm init, например:
sudo kubeadm join 192.168.0.10:6443 --token abcdef.1234567890abcdef \
--discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
▪️ Проверка статуса кластера. На мастер-ноде:
kubectl get nodes
kubectl get pods --all-namespaces
#kubernetes #baremetal
🧑💻 NetworkAdmin