Skip to content

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