Deployment options on Kubernetes
When you create a site on Kubernetes, there are many options you can use. For example, you can set the number of pods and the resources allocated to each pod. This guide focusses on the following goals:
Scaling for increased traffic
For optimal network latency and throughput, you can adjust the CPU allocation for the router using the router-cpu
option.
Router CPU is the primary factor governing Skupper network performance.
📌 NOTE
Increasing the number of routers does not improve network performance. An incoming router-to-router link is associated with just one active router. Additional routers do not receive traffic while that router is responding
Determine the router CPU allocation you require.
By default, the router CPU allocation is
BestEffort
as described in Pod Quality of Service Classes.Consider the following CPU allocation options:
Router CPU | Description |
---|---|
1 | Helps avoid issues with BestEffort on low resource clusters |
2 | Suitable for production environments |
5 | Maximum performance |
If you are using the Skupper CLI, set the CPU allocation for the router using the
--router-cpu
option. For example:$ skupper init --router-cpu 2
If you are using YAML, set the CPU allocation for the router by setting a value for the
router-cpu
attribute. For example:apiVersion: v1 kind: ConfigMap metadata: name: "skupper-site" data: name: "my-site" router-cpu: 2
Creating a high availability site
By default, Kubernetes restarts any router that becomes unresponsive. (If you encounter router restarts, consider Scaling for increased traffic in order to improve responsiveness.)
If the cluster where you are running Skupper is very busy, it may take time for Kubernetes to schedule a new router pod. You can "preschedule" a backup router by deploying two routers in a site.
If you are using the Skupper CLI, set the number of routers to
2
using the--routers
option:$ skupper init --routers 2
If you are using YAML, set the number of routers to
2
by setting therouters
attribute:apiVersion: v1 kind: ConfigMap metadata: name: "skupper-site" data: name: "my-site" routers: 2
Setting the number of routers to more than two does not provide increased availability and can adversely affect performance.
Note: Clients must reconnect when a router restarts or traffic is redirected to a backup router.