Breadcrumbs

Добавление сервера для Vоice Gateway в кластер Kubernetеs

В данной инструкции приведены шаги по добавлению сервера для Voice Gateway (VGW) в кластер Kubernetes.

Все действия выполняются на ВМ1, если не указано иное.

Для добавления сервера под Voice Gateway выполните следующие шаги:

  1. На ВМ3 клонируйте репозиторий:

  • Замените {TAG_NAME} любым доступным тегом (для получения полного списка тегов используйте git tag):

git clone https://bitbucket.org/naveksoft/aivp-deploy.git
cd ./aivp-deploy
git checkout {TAG_NAME}
cd kubernetes/k8s-onprem/
  1. Установите базовые компоненты Kubernetes:

./install_kube_base.sh
  1. На ВМ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
  1. Скопируйте токен и примените его на ВМ3, используя sudo:

###Пример:
sudo kubeadm join 192.168.205.164:6443 --token 3yeqrm.abnp3yof8vivcbge --discovery-token-ca-cert-hash sha256:b58cfd679a3bb49f444dfe4869fad5e19f4fba87f1d6ae5f20da06c60f51684e
  1. Проверьте на ВМ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
  1. Добавьте 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 из Интернета во внутренние сети домофонов.

  1. На ВМ3, установить определенный модуль ядра для улучшения обработки RTP:

sudo add-apt-repository -y ppa:davidlublink/rtpengine
sudo apt update
sudo apt-get install -y ngcp-rtpengine 
  1. Настройте параметры RTPENGINE:

    vim /etc/rtpengine/rtpengine.conf
    

    Настройте внутренние и внешнее интерфейсы (смотрите архитектурную схему):

    interface = internal/<INT_IP>;external/<EXT_IP>!<NAT_EXT_IP>
    

    Установить диапазон портов RTP:

    port-min = 20000
    port-max = 25000
    
  2. Разрешите 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
  1. Перезагрузите сервис:

sudo systemctl restart rtpengine