В данной инструкции найдете шаги по добавлению сервера для Voice Gateway (VGW) в кластер Kubernetes.
Все действия выполняются на ВМ1, если не указано иное.
Для добавления сервера под Voice Gateway выполните следующие шаги:
-
На ВМ3 клонируйте репозиторий:
-
Замените
{TAG_NAME}любым доступным тегом (для получения полного списка тегов используйтеgit tag):
git clone https://github.com/aipix-dev/aipix-deploy.git
cd ./aipix-deploy
git checkout {TAG_NAME}
cd kubernetes/k8s-onprem/
-
Установите базовые компоненты Kubernetes:
./install_kube_base.sh
-
На ВМ1 получите регистрационный токен и URL:
kubeadm token create --print-join-command
###Пример токена:
kubeadm join 192.168.205.164:6443 --token 3yeqrm.abnp3yof8vivcbge --discovery-token-ca-cert-hash sha256:b58cfd679a3bb49f444dfe4869fad5e19f4fba87f1d6ae5f20da06c60f51684e
-
Скопируйте токен и примените его на ВМ3, используя
sudo:
###Пример:
sudo kubeadm join 192.168.205.164:6443 --token 3yeqrm.abnp3yof8vivcbge --discovery-token-ca-cert-hash sha256:b58cfd679a3bb49f444dfe4869fad5e19f4fba87f1d6ae5f20da06c60f51684e
-
Проверьте на ВМ1, что сервер добавлен и находится в статусе
Ready:
kubectl get nodes
###Пример ответа:
NAME STATUS ROLES AGE VERSION
k8s-single Ready control-plane 9d v1.28.2
k8s-single-analytics Ready <none> 3m28s v1.28.2
k8s-single-vgw Ready <none> 1m14s v1.28.2
-
Добавьте
labelиtaintна данный сервер, чтобы он использовался только для Voice Gateway. Выполните следующие команды, заменивk8s-single-vgwна имя вашего сервера:
##Пример:
kubectl taint nodes k8s-single-vgw vgw=true:NoSchedule
kubectl label nodes k8s-single-vgw vgw=true
Установка дополнительного компонента для узла Voice Gateway
Узел Voice Gateway требует прокси RTP для маршрутизации трафика RTP из Интернета во внутренние сети домофонов.
-
На ВМ3, установить определенный модуль ядра для улучшения обработки RTP:
sudo add-apt-repository -y ppa:davidlublink/rtpengine-stable
sudo apt update
sudo apt-get install -y ngcp-rtpengine
-
Настройте параметры
RTPENGINE:vim /etc/rtpengine/rtpengine.confНастройте внутренние и внешнее интерфейсы (смотрите архитектурную схему):
interface = internal/<INT_IP>;external/<EXT_IP>!<NAT_EXT_IP>Установить диапазон портов RTP:
port-min = 20000 port-max = 25000 -
Разрешите
nonlocal_bind:
cat <<EOF | sudo tee /etc/sysctl.d/99-rtpengine.conf
## allow RTPEngine to start and bind to non local IPv4 and IPv6 ##
net.ipv4.ip_nonlocal_bind=1
net.ipv6.ip_nonlocal_bind=1
EOF
sudo sysctl -f /etc/sysctl.d/99-rtpengine.conf
-
Перезагрузите сервис:
sudo systemctl restart rtpengine