Все манипуляции от рута
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
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
Есть среды выполненения 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
Сперва тестовый инит, чтобы проверить нет ли ошибок
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
Задаем имя отличное от мастерноды
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