Communication Matrix

This page is the single reference for the network access that requires. Other pages link here instead of listing ports themselves. It has two parts:

  • Network Flows are the connections that have to be allowed between machines and networks — through site firewalls, security groups, router ACLs, and load balancers. They are listed by the endpoint that receives the traffic, and they apply to every cluster, whatever operating system its nodes run, unless a row says otherwise. Use them to request network and security approvals before you install the global cluster or create a workload cluster.
  • Node Ports are the ports that platform components listen on on each node, which is what a host firewall on the node has to allow. This part differs between Alauda OS nodes and non-Alauda OS nodes.

Every port on this page is TCP unless stated otherwise. In the tables, Needed when states the condition under which a row applies. A row marked Always applies to every deployment. If the condition of a row does not describe your deployment, you do not need to open that row. The sections that apply to a single scenario, Installation and Infrastructure Providers, state the scenario in their introduction instead.

Decide What Applies to You

Your choices decide which rows you need. Settle them before you request network approvals.

DecisionChoiceWhat it changes
Operating system of the nodesAlauda OSThe global cluster is installed from a bootstrap node, see Installation, and clusters are created through an infrastructure provider, see Infrastructure Providers. The node host firewall is preconfigured, see Alauda OS Nodes
Operating system of the nodesnon-Alauda OSThe global cluster deploys the nodes of a workload cluster over SSH, see Workload Cluster VIP and Nodes. The installer runs on a node of the global cluster, see Installation. If you enable a host firewall, see Non-Alauda OS Nodes
Control plane endpointExternal load balancerForward the ports that the tables in Platform Access Address and global VIP and Workload Cluster VIP and Nodes mark in the Forward on load balancer column
Control plane endpointSelf-built VIPNo load balancer listeners. See Self-built VIP
Platform image registryExternal platform image registrySee Image Registry
Platform image registryPlatform built-in Registry, the defaultAdds the 11443 rows
Global disaster recoveryUsedAdds the flows marked Global DR in Platform Access Address and global VIP. See Global Disaster Recovery
HTTP access to the platformEnabled. We do not recommend it; the platform uses HTTPS by defaultAdds the 80 rows

Overview

The diagram shows the steady-state flows between the main parties, plus the two flows of an Alauda OS installation that involve the bootstrap node. The other flows that exist only during installation are listed in Installation. The tables in Network Flows give the source, port, purpose, and condition of each flow.

Diagram: Steady-state network flows between users, the global cluster, a standby global cluster, a workload cluster, an external registry, and an IaaS platform, with the bootstrap node of an Alauda OS installation.

Network Flows

Most tables list the traffic that arrives at one endpoint; Installation, Infrastructure Providers, and Infrastructure Services list the flows of one scenario. Traffic that a load balancer forwards does not originate from a cluster node IP address, so allow it from the load balancer as well as from the cluster networks. We recommend configuring health checks on the load balancer for each forwarded port.

Platform Access Address and global VIP

The platform access address is the global VIP, or the domain that resolves to it. If the global cluster also uses an External IP, the rows for 443, 6443, and 11443 apply to it as well.

Configure the load balancer to forward the ports marked Yes in Forward on load balancer from the VIP to all control plane nodes of the global cluster. With Self-built VIP there are no load balancer listeners; see Self-built VIP. In the Allowed from column, Global DR marks the sources that a disaster recovery pair adds; see Global Disaster Recovery.

PortAllowed fromForward on load balancerPurposeNeeded when
443, or the custom HTTPS port set at installationUsers, operators, and external systems; nodes of workload clusters; Bare Metal hosts, which register through it, and workload cluster hosts, which also poll for their plans through it, see Infrastructure Providers; Global DR: standby cluster nodesYesWeb console, platform API, Kubernetes API, and image registry access over HTTPS. Nodes and platform components of workload clusters reach the platform through it. If a workload cluster cannot reach the platform access address of the global cluster, add an address that it can reach, as described in Creating an On-Premise Cluster. With disaster recovery, etcd Synchronizer reaches the active platform through this address, and logging and monitoring components send alert callbacks to itAlways. To use a custom HTTPS port, forward that port instead, and enter the same port in the installation parameters
80Users, operators, and external systems; Global DR: standby cluster nodesYesPlatform HTTP accessOnly when you enable HTTP access to the platform. We do not recommend it; the platform uses HTTPS by default
6443Nodes of the global cluster; the bootstrap node during an Alauda OS installation; Global DR: standby cluster nodesYesKubernetes API server for the nodes of the cluster. During an Alauda OS installation, Cluster API reaches the control plane endpoint through it while the control plane is created. While etcd Synchronizer is installed or reinstalled, the standby obtains the etcd CA material from the active cluster's API serverAlways
11443All nodes of every cluster that uses the platform built-in Registry; Bare Metal hosts that pull the Alauda OS image from it, see Infrastructure Providers; Global DR: standby cluster nodesYesPlatform built-in Registry: nodes pull platform and plugin imagesThe global cluster uses the platform built-in Registry. Not needed when you use an external platform image registry
2379Global DR: standby cluster nodes. Forward it on the VIPs of both clusters of the pairYes. Only TCP (Layer 4) forwarding is supported; Layer 7 forwarding is notetcd synchronization: etcd Synchronizer reads etcd data from the active cluster and writes it to the local etcdGlobal disaster recovery. If the standby reaches the etcd of the active cluster directly through Active Global Cluster ETCD Endpoints, allow 2379 to those addresses instead of forwarding it on the VIP

On Huawei Cloud Stack, the HCS provider creates the global ELB listeners for clusters whose nodes run Alauda OS. See Installing the global Cluster.

Workload Cluster VIP and Nodes

The global cluster manages every workload cluster, so the global cluster nodes must reach the VIP of each workload cluster and, for non-Alauda OS nodes, the nodes themselves over SSH.

Workload cluster VIP. Configure the load balancer to forward the ports marked Yes in Forward on load balancer from the VIP to all control plane nodes of the workload cluster.

PortAllowed fromForward on load balancerPurposeNeeded when
6443Nodes of the global cluster; all nodes of the workload clusterYesKubernetes API server of the workload cluster. The global cluster manages the workload cluster through itAlways
11780Nodes of the global clusterYesPlatform traffic from the global cluster to the workload cluster, for example for monitoringAlways

Workload cluster nodes.

PortAllowed fromPurposeNeeded when
22Nodes of the global clusterThe global cluster deploys the nodes over SSH. If the nodes cannot be reached over SSH directly, provide a SOCKS5 proxy; see Creating an On-Premise ClusterThe workload cluster has non-Alauda OS nodes. Alauda OS nodes are provisioned from an image and do not need this flow

The nodes of a workload cluster also reach the platform access address of the global cluster, listed in Platform Access Address and global VIP.

Self-built VIP

Self-built VIP replaces the external load balancer with keepalived running on the control plane nodes. It configures no load balancer listeners. Instead of a TCP or UDP port, it uses the VRRP protocol (IP protocol number 112) and moves the VIP with gratuitous ARP.

SourceDestinationPort or protocolPurposeNeeded when
Control plane nodes that share the VIPThe other control plane nodes that share the VIPVRRP, IP protocol 112Elects the node that holds the VIPThe cluster uses Self-built VIP
The control plane node that takes over the VIPThe subnet of the VIPGratuitous ARPAnnounces the new location of the VIP, so that the other machines on the subnet update their ARP entriesThe cluster uses Self-built VIP
  • Allow VRRP between all control plane nodes that share the VIP, and allow gratuitous ARP updates on their subnet. firewalld and ufw block VRRP by default, so on a non-Alauda OS node with a host firewall the VIP never comes up unless you allow it.
  • Place all control plane nodes and the VIP in the same subnet. The VIP must differ from every node IP address.
  • No load balancer listeners are configured. The flows to the VIP listed on this page still apply.

Clusters whose nodes run a non-Alauda OS support Self-built VIP. For the control plane endpoint modes that clusters whose nodes run Alauda OS support, see Plan the Control Plane Endpoint.

Image Registry

The platform built-in Registry is served on the global VIP; see the 11443 row in Platform Access Address and global VIP. The temporary registry on the bootstrap node of an Alauda OS installation is listed in Installation. The registries below need their own flows.

RegistrySourceDestinationPortNeeded when
Platform built-in Registry through an external addressWorkload cluster nodes that cannot reach the global clusterThe address configured in Add External Address for Built-in RegistryThe port of that addressA workload cluster cannot reach the global cluster and the global cluster uses the platform built-in Registry
External platform image registryThe installer node or bootstrap node, and all nodes of every cluster that uses itThe registry addressThe port in the registry address, <host-or-IP>[:port]The platform uses an external platform image registry
Private Repository of a workload clusterAll nodes of that workload clusterThe registry addressThe port in the registry addressThe workload cluster is configured with a Private Repository

Global Disaster Recovery

A disaster recovery pair needs every flow marked Global DR in Platform Access Address and global VIP. Allow them in both directions between the Primary and Standby cluster networks — on firewalls, security groups, router ACLs, and any other inter-site network controls — and forward them on both cluster VIPs as the Forward on load balancer column of that table says.

The rules must be bidirectional because the cluster roles are reversed after a failover: the former Primary becomes the new Standby and has to reach the new Primary on the same ports. This does not make etcd replication bidirectional — etcd Synchronizer runs only on the current Standby Cluster and writes to its local etcd.

For the procedure, see Global Disaster Recovery. For a global cluster whose nodes run Alauda OS, see Global Cluster Disaster Recovery.

Within a Cluster

SourceDestinationPortPurposeNeeded when
All nodes of a clusterThe cluster's own VIP6443kubelet and cluster components reach the API serverAlways
All nodes of a clusterEvery other node of the same clusterThe ports in Node Ports, plus Pod and Service trafficCluster-internal traffic. Pod and Service traffic must not be filtered by port; see Allow Cluster-Internal TrafficAlways

Installation

These flows are needed only while the global cluster is being installed.

Alauda OS. setup.sh runs on a temporary bootstrap node that never joins the global cluster. In a disaster recovery deployment, each side is installed from its own bootstrap node, so allow these flows for both bootstrap nodes.

SourceDestinationPortPurpose
OperatorsBootstrap node22Run the installation
Bootstrap nodeIaaS platform APISee Infrastructure ProvidersThe Cluster API providers run on the bootstrap node during installation and create the global cluster machines
Bootstrap nodeglobal VIP6443Cluster API reaches the control plane endpoint while the control plane is created
global cluster nodes being provisionedBootstrap node11443Nodes pull the platform images from the registry on the bootstrap node until they switch to the platform image registry. This is the temporary registry of the bootstrap node, not the platform built-in Registry of the global cluster
global cluster hosts, Bare Metal onlyBootstrap node12443Elemental registration endpoint used during the bootstrap phase

For the bootstrap node requirements, see Installing the global Cluster.

Non-Alauda OS. setup.sh runs on a node that becomes a control plane node of the global cluster.

SourceDestinationPortPurpose
OperatorsInstaller node8080Web console of the installer
Installer nodeAll other global cluster nodesThe ports in Platform Ports, including 22The installer deploys the nodes

Infrastructure Providers

Clusters whose nodes run Alauda OS are created through a Cluster API infrastructure provider. The provider runs on the bootstrap node while the global cluster is installed and on the global cluster afterwards, so allow these flows from the bootstrap node and from the global cluster nodes.

ProviderDestinationPortPurpose
Huawei DCSDCS VRM virtual IP7443DCS REST API: cluster lifecycle calls and the first step of a file upload (applyUpload)
Huawei DCSManagement IP address of every DCS physical host that may receive a cloneThe port returned by DCS, typically 8443. Confirm it with the DCS administratorUpload of the Ignition ISO to the URL returned by applyUpload
Huawei Cloud StackHCS API and IAM endpointsThe port of each endpointResource lifecycle through the HCS API
VMware vSpherevCenter443Machine lifecycle through the vSphere API

If the global cluster nodes have several network interfaces, make sure that each destination is routable from the interface that reaches it.

Bare Metal. Hosts are registered, installed, and joined over the network, so open these flows before the first host boots the SeedImage ISO:

StageSourceDestinationPortPurpose
First bootEach host booted from the SeedImage ISOPlatform access address443, or the custom HTTPS portelemental-register registers the host and creates its MachineInventory
First boot of a global host during installationEach global hostBootstrap node11443elemental install pulls the Alauda OS image from the registry on the bootstrap node
First boot of a workload cluster host, and every reprovision of any host after the handoffEach hostPlatform image registry, at the address in global.registry.addressThe port in the registry address, which is 11443 for the platform built-in Registryelemental install and elemental upgrade pull the Alauda OS image
Provisioning and steady stateEach workload cluster hostPlatform access address, path /kubernetes/global443, or the custom HTTPS portelemental-system-agent polls its plan Secret through the platform ingress, not through a direct connection to an API server
Steady stateEach global cluster host after handoffThe VIP of its own global cluster6443The system agent of a global host uses the local API server

A Bare Metal host also needs DNS, NTP, the registry, its cluster's control plane endpoint, and cluster-internal traffic, as listed in the other sections of this page. A firewall approval that covers only 443 produces hosts that register successfully and then fail during installation or join.

Infrastructure Services

SourceDestinationPortPurposeNeeded when
All nodes, and the installer node or bootstrap nodeDNS servers53, UDP and TCPName resolution of the platform access address, the registry, and other endpointsAlways
All nodesNTP servers123, UDPTime synchronization. A production cluster should not depend on public NTP serversAlways
Platform alerting componentsThe notification endpoints you configure, such as a mail server or a webhook receiverThe port of each endpointAlert deliveryYou configure notification endpoints

What This Matrix Does Not Cover

Check each of the following against your own deployment. A requirement that applies to your cluster but is not listed here still has to be allowed.

  • Pod and Service traffic. See Allow Cluster-Internal Traffic.
  • Secondary and non-default container networks. The 6081/UDP port in Node Ports is used by the default Kube-OVN Geneve tunnel. If you change the Kube-OVN tunnel type, or attach a secondary network with Multus on top of the default one, those networks carry Pod traffic between node IP addresses using their own encapsulation, which is not listed here. Confirm what your configuration uses and allow it between the nodes.
  • Application traffic. Ports exposed by your applications through an ingress controller, a gateway, or NodePort and LoadBalancer Services are defined by those applications.
  • Agnostic extensions. Ports required by Agnostic extensions are maintained by those extensions.

Node Ports

This part lists the ports that core components and Aligned extensions listen on. Some of the components run only on global cluster nodes; a workload cluster node listens on the subset of these ports that applies to the components it runs.

Allow Cluster-Internal Traffic

Allow Cluster-Internal Traffic Before You Apply Firewall Rules

The node port lists are not a complete firewall rule set. Pod-to-Pod and Pod-to-Service traffic uses arbitrary ports, so a host firewall that allows only the listed ports breaks cluster networking.

When a host firewall is enabled, also treat the Pod CIDR, the Service CIDR, and the network interfaces created by the CNI plugin as trusted sources, so that cluster-internal traffic is not filtered by port. The interface names depend on the CNI plugin and on the environment, so read them from the node instead of assuming a fixed name.

Alauda OS Nodes

The Alauda OS image preconfigures the node host firewall (firewalld), and the platform maintains it. You do not manage these rules. To open an additional port — for example, for a workload that listens directly on the node — use a MachineConfig as described in Managing Firewall Ports.

The preconfigured rules allow the following:

TypeAllowed
TCP ports22, 53, 80, 179, 443, 1936, 2181, 2379, 2380, 2888, 3300, 3306, 3888, 5671, 5672, 6032, 6042, 6443, 6641-6646, 6789, 6800-7300, 7473, 7480, 8080, 9000, 9091, 9092, 9094, 9100, 9104, 9121, 9141, 9200, 9253, 9283, 9300, 9308, 9323, 9353, 9404, 9926, 10249, 10250, 10257, 10259, 10660, 10661, 10665, 11443, 11780, 11781, 11782, 15012, 15017, 15021, 15443, 15671, 15672, 16379, 17472, 17946, 26379, 27017, 30000-32767, 33062
UDP ports53, 6081, 30000-32767
ProtocolsICMP, VRRP
OtherIP masquerading
  • The Preconfigured on Alauda OS column of Platform Ports and Calico Ports shows which of the ports in those tables the image already allows.
  • VRRP is allowed, so Self-built VIP needs no additional node rule.
  • The list covers core components and Aligned extensions, so it also includes ports beyond the platform ports, such as those of service mesh, storage, and data services.

Ports required by Agnostic extensions and other third-party components are not preconfigured. If your cluster needs a port that is not preconfigured, open it with a MachineConfig.

Non-Alauda OS Nodes

You need this section only when a host firewall, such as firewalld or ufw, is enabled on the cluster nodes. Keeping the host firewall disabled is the default and recommended node configuration. Before you enable a host firewall, read Hardened Node Security Configuration, which gives the init.sh arguments and the order in which to apply the configuration.

This section is not the same as the port occupancy check in Node Preprocessing. That check confirms that no other process has already bound the ports the platform needs before the installation starts. This section describes which ports a host firewall must allow. Both apply when a host firewall is enabled.

Platform Ports

The last column shows whether the Alauda OS image preconfigures the port; on Alauda OS nodes you do not open it yourself.

PortProtocolComponentPreconfigured on Alauda OS
22TCPsshdYes
80TCPalb2Yes
443TCPglobal-alb2Yes
1936TCPalb2Yes
2049TCPnfsNo
2379TCPetcdYes
2380TCPetcdYes
6081UDPkube-ovnYes
6443TCPkube-apiserverYes
6641TCPovsdb-serverYes
6642TCPovsdb-serverYes
6643TCPovsdb-serverYes
6644TCPovsdb-serverYes
7473TCPfrr-metricsYes
9000TCPminioYes
9100TCPnode_exporterYes
10250TCPkubeletYes
10257TCPkube-controller-managerYes
10259TCPkube-schedulerYes
10660TCPkube-ovn-controllerYes
10661TCPkube-ovn-monitorYes
10665TCPkube-ovn-daemonYes
11443TCPregistryYes
11780TCPglobal-alb2Yes
11782TCPglobal-alb2Yes
17472TCPspeakerYes
17946TCPspeakerYes
30000-32767TCPUser application NodePort rangeYes
30000-32767UDPUser application NodePort rangeYes
  • Unless a note below says otherwise, every port in the table has to be reachable between the cluster nodes and from the node that runs the installer.
  • 443/tcp additionally carries the platform access address, so it has to be reachable by the users and systems that access the platform.
  • 80/tcp is in use only when HTTP access to the platform is enabled, which we do not recommend.
  • 11443/tcp is in use only when the cluster serves the platform built-in Registry.
  • 30000-32767 is the port range reserved for NodePort Services created by user applications. A port in this range is opened on the nodes when an application that uses it is deployed, and it is closed again when the corresponding Service is deleted. Allow this range on the host firewall only if your applications use NodePort Services, and restrict it to the sources those applications are meant to serve.

Installer Node Ports

The node that runs the installer also uses 8080, 12080, 12443, and 16443. Allow these ports on that node before you start the installation.

Calico Ports

The following ports are required only when the cluster uses the Calico CNI plugin.

PortProtocolComponentPreconfigured on Alauda OS
179TCPcalico-node, BGPYes
9091TCPcalico-nodeYes
9324TCPbird_exporterNo

VRRP for Self-built VIP

When the cluster uses Self-built VIP, allow the VRRP protocol between the control plane nodes that share the VIP. See Self-built VIP.