Frequently Asked Questions⚓︎
Short answers to the questions installers and operators ask most often, with links to the pages that cover each topic in full.
Platforms and installation⚓︎
Can Expeto set up Kubernetes for us?⚓︎
Expeto does not provide Kubernetes services. Many providers offer day 0, 1 and 2 support for the platforms Expeto installs on. The xCore platform notes cover Red Hat OpenShift, VMware Tanzu, Canonical MicroK8s and Amazon EKS; other conformant Kubernetes distributions work when they meet the prerequisites. Not every cloud platform supports the advanced routing and scaling features that large deployments need.
I have a Docker-based install and I want to migrate to Kubernetes⚓︎
Build a Kubernetes cluster on separate nodes and install there. In-place migration from a Docker-based install is not supported.
Which chart installs xCore?⚓︎
The xfabric chart, which installs the xCore operator; the core itself is described by a Site
resource. The xcore chart of the 3.3 releases is deprecated. See xCore.
Sizing and networking⚓︎
How many sessions can a user plane hold?⚓︎
On an xCore, each user plane's session table is set by numberOfSessions on its entry in the Site
(default 3000), and is fixed once the user plane exists, so size it for the peak. On an xRouter,
nfcm.dataNetwork.numSessions in the chart values sets it. Each session uses memory on the user
plane; the sizing guide gives the figures to plan with.
How do I attach additional networks to a user plane, the AMF or the MME?⚓︎
On an xCore, declare the network as an attachment in the Site and reference it from the interface
that uses it; see Define and apply a Site. On an xRouter,
add it under global.networks in the chart values; see the
values.yaml reference.
How do I add static routes?⚓︎
On an xCore, add routes to the user plane's n3 or n6 entry in the Site; the running pods apply
them without a restart. Routes the worker nodes themselves need go in the Site's nodeConfig. See
the Site resource reference.
On an xRouter, chain the route-override CNI plugin, which the chart bundles, after the interface
plugin of the network in global.networks:
global:
networks:
n6:
cniVersion: 0.3.1
plugins:
- type: macvlan # or ipvlan, host-device, sriov, bridge
master: eth0 # the node interface carrying the segment
- type: route-override
flushroutes: false
#delroutes:
# - dst: 192.0.2.0/24
#addroutes:
# - dst: 192.0.2.0/24
# gw: 192.0.2.1
I can see GTP packets arrive on a node, but why don't they arrive at the SMF or UPF pod?⚓︎
Check for Services of type NodePort that are left over from an earlier configuration. A NodePort Service installs firewall rules on the worker nodes that can stop packets from reaching the pods unless they come through the NodePort Service itself. Verify the rules on the worker node:
iptables -L -t nat
MicroK8s⚓︎
I updated the DNS server on a single-host MicroK8s install but still see name resolution errors⚓︎
Restart MicroK8s so it uses the new DNS servers:
sudo microk8s stop && sudo microk8s start
I get certificate errors from kubectl logs or when containers start on MicroK8s⚓︎
If the host's IP address has changed, recreate the CA certificate so it includes the new address:
sudo microk8s refresh-certs --cert ca.crt