Bem vido a documentação de utilização do OPS-free5g-Lab.
- 6gb de Memória Ram
- 25GB de espaço em disco
As ferramentas a seguir devem estar instaladas em sua máquina:
cd
wget https://download.virtualbox.org/virtualbox/6.1.42/virtualbox-6.1_6.1.42-155177~Ubuntu~jammy_amd64.deb
sudo dpkg -i virtualbox-6.1_6.1.42-155177~Ubuntu~jammy_amd64.deb
wget -O- https://apt.releases.hashicorp.com/gpg | gpg --dearmor | sudo tee /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install vagrant
sudo apt-add-repository ppa:ansible/ansible
sudo apt update
sudo apt install ansible
Caso retorne erro de dependências desencontradas corrija com: sudo apt --fix-broken install
Clone este repositório
git clone https://github.com/thiagogmta/ops-free5gc-lab.git
Iniciando o ambiente
Acesse o diretório do repositório e crie a infraestrutura com:
cd ops-free5gc-lab
vagrant up
Ao final do deploy teremos a seguinte mensagem:
PLAY RECAP *********************************************************************
k8s-node2 : ok=16 changed=15 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Três máquinas virtuais serão criadas no Virtualbox.
Você pode verificar as Máquinas criadas com:
vagrant status
Acessando o Ambiente
Para acessar o ambiente basta utilizar o comando a seguir seguido do nome da VM que quer acessar.
vagrant ssh k8s-master
Será feito acesso a VM via SSH
Verificando o cluster
Para verificar os nós do cluster utilize:
kubectl get nodes
ou com o comando a seguir para informações mais detalhadas:
kubectl get nodes -o wide
Verifique se o módulo gtp5g está ativo (opicional):
dmesg | grep gtp
Caso não esteja execute:
cd gtp5g
make clean && make
sudo make install
Os comandos a seguir serão executados no Master Node.
Criando um Volume para o MongoDB
cd ~
kubectl apply -f ops-free5gc-lab/volume/persistentVolume.yaml
Deploy do Núcleo
Com o ambiente pronto iremos inserir os charts helm para o deploy do núcleo.
cd ops-free5gc-lab/charts
helm install core free5gc
Podemos verificar a criação do núcleo com o comando $ kubectl get pods
. Inicialmente pode levar alguns instantes até que todos os pods estabilizem.
Acessando a Interface Web
Você pode acessar a interface web diretamente do seu host de usuário através do navegador. Para isso utilize em seu navegador o endereço IP: 192.168.50.10:30500 (esse é o endereço do Master Node que encontra-se no vagrantfile).
O usuário padrão é admin e a senha é free5gc.
Vá ao menu lateral Subscribers > New Subscriber > Submit (com todos os valores padrão).
UERANSIM é um simulador de UE (User Equipment) e RAN (Radio Access Network - gNodeB) de código aberto para redes 5G. O Equipamento de Usuário (UE) e a Rede de Acesso por Rádio (RAN) podem ser comparadas a um telefone celular 5G e uma estação base, respectivamente. Esse projeto pode ser utilizado para realizar testes na infraestrutura principal da rede 5G e também para estudar o funcionamento do sistema 5G.
Implantação
cd ops-free5gc-lab/charts
helm install ran ueransim
Após o deploy do chart helm você pode verificar a existências dos PODs referentes a GNB e UE com:
kubectl get pods
Teste de Comunicação
Após o deploy do UERANSIM podemos acessar o POD referente ao UE para executar um teste de comunicação. Para acessar o referido POD basta:
kubectl exec -it <pod-ue-name> -- bash
Endereçamento: Caso ocorra o seguinte erro de endereçamento na criação das VM`s:
Faça os procedimentos a seguir em seu host:
sudo su
mkdir /etc/vbox/
cd /etc/vbox/
echo '* 0.0.0.0/0 ::/0' > /etc/vbox/networks.conf
chmod 644 /etc/vbox/networks.conf
Erro ao subir o ambiente
Caso ao executar o comando $ vagrant up
pela primeira vez:
- Apenas o node master seja criado ou
- Apenas o node master e 1 worker
Execute o comando: $ vagrant halt
para finalizar as VMs e volte a executar o comando $ vagrant up
.
Caso continue reportando erro destrua a infra $ vagrant destroy
e crie novamente $ vagrant up
.
- A função n3iwf está desabilitada.
- Utilizou-se para este projeto o Virtualbox na versão 6.1 (a versão 7.0 apresentou instabilidade com o Vagrant. Pode ter sido uma questão pontual, mas fica aqui registrado).
- A partir da versão 1.20 do Kubernetes o dockershin foi descontinuado e definitivamente removido na versão 1.24.
- Este projeto utiliza a versão 1.23 do kubernetes adotando o Containerd em detrimento do Docker.