Schedule Typha for scaling to well-known nodes

1 MINUTE READ

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