add: keepalived (-1-)
This commit is contained in:
parent
7b45aa7762
commit
02c8e7d9da
@ -571,6 +571,8 @@ sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin kub
|
|||||||
* `kubeadm` — это утилита для управления кластером Kubernetes.
|
* `kubeadm` — это утилита для управления кластером Kubernetes.
|
||||||
* `kubectl` — это утилита командной строки для управления кластером Kubernetes.
|
* `kubectl` — это утилита командной строки для управления кластером Kubernetes.
|
||||||
|
|
||||||
|
#### Установка CRI (Container Runtime Interface
|
||||||
|
|
||||||
Так же нам надо **на каждый узел** установить `cri-dockerd` -- демон, который позволяет Kubernetes использовать
|
Так же нам надо **на каждый узел** установить `cri-dockerd` -- демон, который позволяет Kubernetes использовать
|
||||||
Docker в качестве контейнерного рантайма. Начиная с версии 1.20, Kubernetes прекратил прямую поддержку Docker
|
Docker в качестве контейнерного рантайма. Начиная с версии 1.20, Kubernetes прекратил прямую поддержку Docker
|
||||||
и для взаимодействия появился `cri-dockerd` -- интерфейс Container Runtime Interface (CRI) для Docker,
|
и для взаимодействия появился `cri-dockerd` -- интерфейс Container Runtime Interface (CRI) для Docker,
|
||||||
@ -583,21 +585,21 @@ Docker в качестве контейнерного рантайма. Начи
|
|||||||
sudo wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.16/cri-dockerd-0.3.16.arm64.tgz
|
sudo wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.16/cri-dockerd-0.3.16.arm64.tgz
|
||||||
```
|
```
|
||||||
|
|
||||||
Распакуем архив, переместим исполняемый файл в папку `/usr/local/bin/` и удалим архив:
|
Распакуем архив, переместим исполняемый файл в папку `/usr/local/bin/` и удалим архив и временную папку с распакованным:
|
||||||
```shell
|
```shell
|
||||||
sudo tar xvf cri-dockerd-0.3.16.arm64.tgz
|
sudo tar xvf cri-dockerd-0.3.16.arm64.tgz
|
||||||
sudo mv cri-dockerd/cri-dockerd /usr/local/bin/
|
sudo mv cri-dockerd/cri-dockerd /usr/local/bin/
|
||||||
sudo rm -rf cri-dockerd-0.3.16.arm64.tgz
|
sudo rm -rf cri-dockerd*
|
||||||
```
|
```
|
||||||
|
|
||||||
Сделаем службу `cri-dockerd` для systemd. Для этого в папке `/etc/systemd/system/` создадим файл `cri-docker.service`.
|
Создадим службу `cri-dockerd` в systemd. Для этого в папке `/etc/systemd/system/` создадим файл `cri-docker.service`.
|
||||||
Он описывает службу `cri-dockerd` и определяет, как и когда она должна быть запущена. Создадим файл:
|
Он описывает службу `cri-dockerd` и определяет, как и когда она должна быть запущена. Создадим файл:
|
||||||
```shell
|
```shell
|
||||||
sudo nano /etc/systemd/system/cri-docker.service
|
sudo nano /etc/systemd/system/cri-docker.service
|
||||||
```
|
```
|
||||||
|
|
||||||
Содержимое файла ([см. тут](https://raw.githubusercontent.com/Mirantis/cri-dockerd/master/packaging/systemd/cri-docker.service)),
|
Содержимое файла ([см. тут](https://raw.githubusercontent.com/Mirantis/cri-dockerd/master/packaging/systemd/cri-docker.service)),
|
||||||
но с поправкой на путь к `cri-dockerd`:
|
но с поправкой на путь к `cri-dockerd` (у нас он не `/usr/bin/cri-dockerd`, а `/usr/local/bin/cri-dockerd`):
|
||||||
```toml
|
```toml
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=CRI Interface for Docker Application Container Engine
|
Description=CRI Interface for Docker Application Container Engine
|
||||||
@ -710,3 +712,58 @@ RuntimeName: docker
|
|||||||
RuntimeVersion: 27.4.1
|
RuntimeVersion: 27.4.1
|
||||||
RuntimeApiVersion: v1
|
RuntimeApiVersion: v1
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Не забудьте, что `cri-dockerd` нужно настроить и запускать на каждом узле кластера.
|
||||||
|
|
||||||
|
#### Настройка балансировщика нагрузки
|
||||||
|
|
||||||
|
Для обеспечения высокой доступности и автоматического переключения узлов в случае сбоя используется `keepalived`.
|
||||||
|
Он нужен только на мастер-узлах, используется для настройки виртуальных IP-адресов (VIP) и в качестве
|
||||||
|
балансировки нагрузки.
|
||||||
|
|
||||||
|
На Ubuntu для Orange Pi 5 `keepalived` уже установлен. Но можно проверить его наличие:
|
||||||
|
```shell
|
||||||
|
dpkg -l | grep keepalived
|
||||||
|
```
|
||||||
|
|
||||||
|
и в случае отсутствия установить:
|
||||||
|
```shell
|
||||||
|
sudo apt install keepalived
|
||||||
|
```
|
||||||
|
|
||||||
|
Настройка `keepalived` осуществляется через файл конфигурации `/etc/keepalived/keepalived.conf`. Создадим его:
|
||||||
|
```shell
|
||||||
|
sudo nano /etc/keepalived/keepalived.conf
|
||||||
|
```
|
||||||
|
|
||||||
|
Пример конфигурации для мастер-узла `opi5plus-1`:
|
||||||
|
```
|
||||||
|
global_defs {
|
||||||
|
enable_script_security
|
||||||
|
script_user nobody
|
||||||
|
}
|
||||||
|
|
||||||
|
vrrp_script check_apiserver {
|
||||||
|
script "/etc/keepalived/check_apiserver.sh"
|
||||||
|
interval 3
|
||||||
|
}
|
||||||
|
|
||||||
|
vrrp_instance VI_1 {
|
||||||
|
state BACKUP
|
||||||
|
interface enP4p65s0
|
||||||
|
virtual_router_id 5
|
||||||
|
priority 100
|
||||||
|
advert_int 1
|
||||||
|
nopreempt
|
||||||
|
authentication {
|
||||||
|
auth_type PASS
|
||||||
|
auth_pass ********
|
||||||
|
}
|
||||||
|
virtual_ipaddress {
|
||||||
|
192.168.1.250
|
||||||
|
}
|
||||||
|
track_script {
|
||||||
|
check_apiserver
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
Loading…
Reference in New Issue
Block a user