add: Adjust nodes (-1-)

This commit is contained in:
Sergei Erjemin 2025-01-05 14:31:23 +03:00
parent 1a974ed53b
commit a62f875e60

View File

@ -950,9 +950,9 @@ sudo service haproxy restart
отвечает на запрос, он помечается как недоступный и исключается из балансировки. Когда узел восстанавливает работу,
он добавляется обратно в балансировку.
-----
#### Инициализация кластера Kubernetes
## Инициализация кластера Kubernetes
Теперь можно инициализировать кластер Kubernetes. На одном из узлов выполним команду `kubeadm init`:
```shell
@ -1174,9 +1174,49 @@ sudo scp /etc/kubernetes/admin.conf [user]@opi5plus-2:~/.kube/config
* **Kube-Router** -- Объединяет функции маршрутизации, балансировки нагрузки и сетевых политик. Использует BGP для
маршрутизации. Подходит для кластеров, где требуется интеграция с существующей сетевой инфраструктурой.
Сетевое взаимодействие между узлами обеспечивается с помощью манифеста сетевого плагина. Например, для установки
Т.к. я планирую в будущем подключать узлы во "внешнем интернете" (узлы будут находиться в разных сетях) и узлы
будут не только на ARM64 (Orange Pi 5 и Apple Silicon), но и armv7 (Raspberry Pi 3B) и amd64 (x86_64), то выбор
пал на **Calico**.
Применим манифест сетевого плагина Calico на мастер-узле:
```shell
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
```
Изменения, внесенные в манифест, могут занять некоторое время для обновления состояния всех узлов, распространиться
и вступить в силу.
Проверим состояния узлов:
```shell
kubectl get nodes
```
И увидим, что узлы готовы к работе:
```text
NAME STATUS ROLES AGE VERSION
opi5plus-1 Ready control-plane 25h v1.30.8
opi5plus-2 Ready <none> 8h v1.30.8
```
Если вы заметили, то второй узел `opi5plus-2` не имеет роли. Kubernetes позволяет назначать узлам роли: мастер
(control-plane) и рабочий (worker). На рабочих узлах запускаются поды, а мастер-узлы используются для управления.
Задать роль второму узлу (`opi5plus-2`) можно командой:
```shell
kubectl label node opi5plus-2 node-role.kubernetes.io/worker=worker
```
Теперь роли узлов будут выглядеть так:
```text
NAME STATUS ROLES AGE VERSION
opi5plus-1 Ready control-plane 39h v1.30.8
opi5plus-2 Ready worker 22h v1.30.8
```
По умолчанию, на мастер-узле (у нас это `opi5plus-1`) запрещено запускать поды не относящихся к управляющей плоскости.
Такое расточительство 😜 можно пресечь. Разрешить запуск подов на мастер-узле нужно удалив `taint` с мастер-узла.
`taint` — это метка, которая назначается узлу и указывает какие поды могут быть запущены на узле.
Удалить taint-метку с мастер-узла можно командой:
```shell
kubectl taint nodes opi5plus-1 node-role.kubernetes.io/control-plane:NoSchedule-
```