diff --git a/docs/Other/k8s.md b/docs/Other/k8s.md index 11c25a6..8a39e6d 100644 --- a/docs/Other/k8s.md +++ b/docs/Other/k8s.md @@ -91,6 +91,89 @@ bool4: off # false literal_string: "yes" # не будет true ``` +### Разворот кластера + +Буду поднимать 1 мастер ноду, 2 воркер ноды, 1 вспомогательную (DNS, etc) + +#### Поднимаем ВМ для кластера +!!! info "Я делаю всё от рута" + +- `apt update && apt install -y qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils` - устанавливаем гипервизор + +- Создаём ВМ +```bash +virt-install \ + --name k8s-master \ + --ram 4096 \ + --vcpus 3 \ + --disk path=/var/lib/libvirt/images/k8s-master.qcow2,size=20 \ + --os-variant ubuntu24.04 \ + --network network=default \ + --graphics vnc,listen=127.0.0.1 \ + --cdrom /var/lib/libvirt/images/ubuntu-24.04.2-live-server-amd64.iso \ + --noautoconsole +``` + +- `virsh vncdisplay k8s-master` - выводит VNC-дисплей, к которому привязан указанная гостевая ОС, если запущена + +Пример вывода +```bash +127.0.0.1:0 +``` + +Значит порт: 5900 + 0 + +- `remote-viewer vnc://localhost:5900` - конфигурируем, устанвливаем ВМ +- `virsh list` - список запущенных ВМ +- `virsh start k8s-master` - запуск созданонй ВМ +- `virsh domifaddr k8s-master` - узнаём адрес ВМ +- `ssh ilyamak04@192.168.122.157` - ну и подключаемся по ssh + +Аналогично поднимаем 2 воркер ноды, и 1 вспомогательную, не забываем менять выделяемые ресурсы для ВМ + +#### Подготовка ВМ + +- Откючаем `swap`, k8s требует отключенный swap для корректной работы планировщика +```bash +swapoff -a +``` +!!! warn "Не забыть убрать запись из /etc/fstab" + +Kubernetes использует cgroups для управления CPU и памятью контейнеров. Если включен swap, ядро может игнорировать лимит памяти, потому что будет сбрасывать часть данных в swap. Это нарушает работу OOM (Out Of Memory) killer и других механизмов kubelet'а. Когда swap включён, kubelet может не "увидеть", что контейнер превысил лимит памяти. Kubelet считает, что вся доступная память — это только RAM. + +- Включаем модули ядра для корректной сетевой работы подов +```bash +tee /etc/modules-load.d/k8s.conf <