Содержание

Установка kubernetes на Debian 11

1. Подготовка системы

Все манипуляции от рута

su - root
apt update
apt upgrade
apt install software-properties-common apt-transport-https ca-certificates gnupg2 gpg curl sudo

Подгрузка необходимых модулей

modprobe overlay -v
modprobe br_netfilter -v
echo "overlay" >> /etc/modules
echo "br_netfilter" >> /etc/modules

Включение forward

echo 1 > /proc/sys/net/ipv4/ip_forward

2. Установка Kubernetes

curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" |  tee /etc/apt/sources.list.d/kubernetes.list

apt-get update
apt-get install -y kubelet kubeadm kubectl
apt-mark hold kubelet kubeadm kubectl 

3. Установка cri-o

Есть среды выполненения Docker, cri-o, containerd, сейчас попробуем на cri-o официальный сайт cri-o

export OS=Debian_11
export VERSION=1.24

echo "deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/$OS/ /" > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list
echo "deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/$VERSION/$OS/ /" > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable:cri-o:$VERSION.list

curl -L https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/$VERSION/$OS/Release.key | apt-key add -
curl -L https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/$OS/Release.key | apt-key add -
apt-get update
apt-get install -y cri-o cri-o-runc
systemctl enable crio
systemctl start crio
systemctl status crio

4. Инициализация кластера

Сперва тестовый инит, чтобы проверить нет ли ошибок

kubeadm init --pod-network-cidr=10.100.0.0/16 --dry-run

А далее инициализация

kubeadm init --pod-network-cidr=10.100.0.0/16

После инициализации следим за инструкциями на экране, нужно перенести файл админ в папку пользователя

Если всё сделано правильно, то будет работать команда

kubectl get nodes

NAME    STATUS   ROLES           AGE   VERSION
kubi1   Ready    control-plane   22h   v1.27.2

Получение команды присоединения

Сама команда присоединения выводится сразу после инита, но чтобы получить токен снова

kubeadm token create --print-join-command

5. Подключение других нод

Предварительная подготовка

Задаем имя отличное от мастерноды

echo "worker1" > /etc/hostname

Меняем айпи адрес

nano /etc/network/interfaces

Прописываем в хостах свой айпи и мастер-хоста

nano /etc/hosts
127.0.0.1       localhost
192.168.200.30  kubi1.dev66.ru  kubi1
192.168.200.31  worker1.dev66.ru        worker1

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Дальше перезагружаемся и подключаемся по новому айпи

Повторяем шаги 1-3

Подключение

На мастерноде выполняем команду

kubeadm token create --print-join-command

и копируем команду присоединения, вводим ее на воркере

далее зададим роль

 kubectl label nodes worker1 kubernetes.io/role=worker
export KUBE_EDITOR=nano