Schedule Typha for scaling to well-known nodes
Big picture
Schedule Typha to well-known nodes.
Value
By scheduling Typha to well-known nodes, you can reduce the number of nodes which expose Typha’s listen port.
Concepts
Typha
Typha is a Calico component which improves scalability and reduces the impact that large clusters may have on the Kubernetes API. Typha agents must accept connections from other agents on a fixed port.
As part of the Calico bootstrap infrastructure, Typha must be available before pod networking begins and uses host networking instead. It opens a port on the node it is scheduled on. By default, it can get scheduled to any node and opens TCP 5473.
How to
Tell if you have installed Typha
Operator based installations always include Typha.
Check if the calico-typha
deployment exists in the kube-system
namespace.
kubectl get deployment -n kube-system calico-typha
Schedule Typha to well-known nodes
You can use the Installation API to configure a node affinity for Typha pods. The operator supports both
preferredDuringSchedulingIgnoredDuringExecution
and requiredDuringSchedulingIgnoredDuringExecution
options.
For example, to require the scheduler to place Typha on nodes with the label “typha=allowed”:
kind: Installation
apiVersion: operator.tigera.io/v1
metadata:
name: default
spec:
typhaAffinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- matchExpressions:
- key: typha
operator: In
values:
- allowed