Add the Voice Gateway node to the Kubernetes cluster
Below, you find the instructions on how to add the Voice Gateway node to the Kubernetes cluster.
All operations will be executed on VM1, unless an alternative is explicitly designated.
To install the Voice Gateway node, follow these steps:
On VM3, clone the repository:
Replace
{TAG_NAME}
with one of available tags (to list all available tags, usegit tag
):
git clone https://github.com/aipix-dev/aipix-deploy.git
cd ./aipix-deploy
git checkout {TAG_NAME}
cd kubernetes/k8s-onprem/
Install the Kubernetes base components:
./install_kube_base.sh
On VM1, get a registration token and URL:
kubeadm token create --print-join-command
###Examle token:
kubeadm join 192.168.205.164:6443 --token 3yeqrm.abnp3yof8vivcbge --discovery-token-ca-cert-hash sha256:b58cfd679a3bb49f444dfe4869fad5e19f4fba87f1d6ae5f20da06c60f51684e
Copy your token and apply it with
sudo
on VM3:
###Example:
sudo kubeadm join 192.168.205.164:6443 --token 3yeqrm.abnp3yof8vivcbge --discovery-token-ca-cert-hash sha256:b58cfd679a3bb49f444dfe4869fad5e19f4fba87f1d6ae5f20da06c60f51684e
On VM1, check if the added node is with the Ready status:
kubectl get nodes
###Example output:
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
andtaint
the new node to be used only by Voice Gateway (replace the nodekk8s-single-vgw
name with your node name):
##Example:
kubectl taint nodes k8s-single-vgw vgw=true:NoSchedule
kubectl label nodes k8s-single-vgw vgw=true
Install an additional component on the Voice Gateway node
The Voice Gateway node necessitates an RTP proxy to route RTP traffic from the internet to internal intercom networks.
On VM3, install a specific kernel module to improve RTP processing:
sudo add-apt-repository -y ppa:davidlublink/rtpengine-stable
sudo apt update
sudo apt-get install -y ngcp-rtpengine
Adjust
RTPENGINE
parameters.CODEvim /etc/rtpengine/rtpengine.conf
Set internal and external interfaces (see the architectural diagram):
CODEinterface = internal/<INT_IP>;external/<EXT_IP>!<NAT_EXT_IP>
Set an RTP port range:
CODEport-min = 20000 port-max = 25000
Reload the service:
systemctl restart rtpengine