Тестовый kubernetes

Гитхаб книги 

 Интересная статья по настройке HA k8s 

 Hard way установка 

 Docker desktop 

 Введение. 

 Для изучения kubernetes в книге "The kubernetes book 2024 edition" автора Nigel Poulton предложено использовать Docker Desktop для запуска одноузлового кластера и дальнейших экспериментов. Я решил не устанавливать лишнего в систему и запустить все на виртуальной машине. Итоговый стек: Windows 10 - Virtualbox 7.0 - Ubuntu 24.04 - Docker Desktop - K8s. 

 Настройки VM: 

 

 

 

 

 Установка 

 mkdir -p $HOME/.kube

sudo apt-get update

sudo apt-get install -y apt-transport-https ca-certificates curl gpg

curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.31/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg

echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.31/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list

sudo apt-get update

sudo apt-get install -y kubelet kubeadm kubectl

sudo apt-mark hold kubelet kubeadm kubectl

sudo systemctl enable --now kubelet

swapoff -a

kubectl

kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=192.168.0.109

mkdir -p $HOME/.kube

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

sudo chown $(id -u):$(id -g) $HOME/.kube/config

kubectl get nodes

kubeadm token create --print-join-command

kubectl get nodes

kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml

kubectl get no

kubectl get po --all-namespaces 

 

 Дополнительные удобства 

 Настройка другого редактора (по умолчанию vi) например при выполнении команды kubectl edit pod ...  

 nano .bashrc

#Добавить строку

export EDITOR=nano

#Для использования в текущей сессии, в последующих сессиях автоматически

source ~/.bashrc 

 При установке через kubeadm для балансировки трафика требуется MetalLB, детали установки 

 Установка kubectl для управления с другой системы 

 curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"

sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl 

 Скопировать файл авторизации config в ~/.kube/config