Skip to content

Commit e65f739

Browse files
committed
list of open ports added to "asciidoc/product/atip-requirements.adoc"
Signed-off-by: Antonio Alonso Alarcon <[email protected]>
1 parent 4375f54 commit e65f739

File tree

1 file changed

+196
-0
lines changed

1 file changed

+196
-0
lines changed

asciidoc/product/atip-requirements.adoc

Lines changed: 196 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,202 @@ The network architecture is based on the following components:
6060
To use the directed network provisioning workflow, the management cluster must have network connectivity to the downstream cluster server Baseboard Management Controller (BMC) so that host preparation and provisioning can be automated.
6161
====
6262

63+
=== Port requirements
64+
65+
To operate properly, a SUSE Telco Cloud deployment requires a number of ports to be reachable on the Management and the Downstream Kubernetes cluster nodes.
66+
67+
NOTE: The exact list depends on the deployed optional components and the selected deployment options (e.g., CNI plugin).
68+
69+
==== Management Nodes
70+
71+
The following table lists the opened ports in nodes running the Management cluster:
72+
73+
NOTE: CNI plugin related ports are not included in this list, those being detailed in a following section (see below).
74+
75+
|===
76+
| Protocol | Port | Source | Description
77+
| TCP
78+
| 22
79+
| Any source requiring SSH access
80+
| SSH access to mgmt. cluster nodes
81+
82+
| TCP
83+
| 80
84+
| Load balancer/proxy that does external TLS termination
85+
| Rancher UI/API when external TLS termination is used
86+
87+
| TCP
88+
| 443
89+
| Any source that requires TLS access to Rancher UI/API
90+
| Rancher agent, Rancher UI/API
91+
92+
| TCP
93+
| 2379
94+
| RKE2 (management cluster) server nodes
95+
| etcd client port
96+
97+
| TCP
98+
| 2380
99+
| RKE2 (management cluster) server nodes
100+
| etcd peer port
101+
102+
| TCP
103+
| 6180
104+
| Any BMC^(1)^ previously instructed by `Metal^3^/ironic` to pull an IPA^(2)^ ramdisk image from this exposed port (non-TLS)
105+
| `Ironic` httpd non-TLS web server serving IPA^(2)^ iso images for virtual media based boot +
106+
+
107+
NOTE: In case this port is enabled, the functionally equivalent but TLS-enabled one (see below) is not opened
108+
109+
| TCP
110+
| 6185
111+
| Any BMC^(1)^ previously instructed by `Metal^3^/ironic` to pull an IPA^(2)^ ramdisk image from this exposed port (TLS)
112+
| `Ironic` httpd TLS-enabled web server serving IPA^(2)^ iso images for virtual media based boot +
113+
+
114+
NOTE: In case this port is enabled, the functionally equivalent but TLS-disabled one (see above) is not opened
115+
116+
| TCP
117+
| 6385
118+
| Any `Metal^3^/ironic` IPA^(1)^ ramdisk image deployed & running in an "enrolled" `BareMetalHost` instance
119+
|Ironic API
120+
121+
| TCP
122+
| 6443
123+
| Any management cluster node; any external (to the mgmt. cluster) kubernetes client
124+
| Kubernetes API
125+
126+
| TCP
127+
| 6545
128+
| Any management cluster node
129+
| Pull artifacts from OCI-compliant registry (Hauler)
130+
131+
| TCP
132+
| 9345
133+
| RKE2 server and agent nodes (management cluster)
134+
| RKE2 supervisor API for Node registration (opened port in all RKE2 server nodes)
135+
136+
| TCP
137+
| 10250
138+
| Any management cluster node
139+
| kubelet metrics
140+
141+
| TCP/UDP/SCTP
142+
| 30000-32767
143+
| Any external (to the management cluster) source accessing a service exposed on the primary network through a `spec.type: NodePort` or `spec.type: LoadBalancer` https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types[Service API object]
144+
| Available `NodePort` port range
145+
|===
146+
^(1)^ BMC: Baseboard Management Controller +
147+
^(2)^ IPA: Ironic Python Agent
148+
149+
==== Downstream Nodes
150+
151+
In SUSE Telco Cloud, before any (downstream) server becomes part of a running downstream kubernetes cluster (or runs itself a single-node downstream kubernetes cluster), it is required to go through some of the https://github.com/metal3-io/baremetal-operator/blob/main/docs/baremetalhost-states.md[BaremetalHost Provisioning states].
152+
153+
* First of all, the Baseboard Management Controller (BMC) for a just enrolled downstream server must be accessible through the out-of-band network, for the ironic service running on the mgmt. cluster to instruct it on the initial steps to take: to get and load an IPA ramdisk image in the BMC offered `virtual media` and power-on the server. Following ports are expected to be exposed from the BMC (they could differ depending on the exact hardware):
154+
155+
|===
156+
| Protocol | Port | Source | Description
157+
| TCP
158+
| 80
159+
| Ironic conductor (from management cluster)
160+
| Redfish API access (HTTP)
161+
162+
| TCP
163+
| 443
164+
| Ironic conductor (from management cluster)
165+
| Redfish API access (HTTPS)
166+
|===
167+
168+
* Once an IPA ramdisk image has been loaded on the target downstream server and used as bootup image (using BMC `virtual media` support) the hardware inspection phase is started. Here below are listed the ports being exposed by a running IPA ramdisk image:
169+
170+
|===
171+
| Protocol | Port | Source | Description
172+
| TCP
173+
| 22
174+
| Any source requrining SSH access to IPA ramdisk image
175+
| SSH access to a being inspected downstream cluster node
176+
177+
| TCP
178+
| 9999
179+
| Ironic conductor (from management cluster)
180+
| Ironic commands towards the running ramdisk image
181+
|===
182+
183+
* Finally, once the baremetal host has been properly provisioned and has joined a downstream kubernetes cluster, it exposes the following ports:
184+
185+
NOTE: CNI plugin related ports are not included in this list, those being detailed in a following section (see below).
186+
187+
|===
188+
| Protocol | Port | Source | Description
189+
| TCP
190+
| 22
191+
| Any source requiring SSH access
192+
| SSH access to downstream cluster nodes
193+
194+
| TCP
195+
| 80
196+
| Load balancer/proxy that does external TLS termination
197+
| Rancher UI/API when external TLS termination is used
198+
199+
| TCP
200+
| 443
201+
| Any source that requires TLS access to Rancher UI/API
202+
| Rancher agent, Rancher UI/API
203+
204+
| TCP
205+
| 2379
206+
| RKE2 (downstream cluster) server nodes
207+
| etcd client port
208+
209+
| TCP
210+
| 2380
211+
| RKE2 (downstream cluster) server nodes
212+
| etcd peer port
213+
214+
| TCP
215+
| 6443
216+
| Any downstream cluster node; any external (to the downstream cluster) kubernetes client.
217+
| Kubernetes API
218+
219+
| TCP
220+
| 9345
221+
| RKE2 server and agent nodes (downstream cluster)
222+
| RKE2 supervisor API for Node registration (opened port in all RKE2 server nodes)
223+
224+
| TCP
225+
| 10250
226+
| Any downstream cluster node
227+
| kubelet metrics
228+
229+
| TCP
230+
| 10255
231+
| Any downstream cluster node
232+
| kubelet read-only access
233+
234+
| TCP/UDP/SCTP
235+
| 30000-32767
236+
| Any external (to the downstream cluster) source accessing a service exposed on the primary network through a `spec.type: NodePort` or `spec.type: LoadBalancer` https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types[Service API object]
237+
| Available `NodePort` port range
238+
|===
239+
240+
241+
==== CNI specific port requirements
242+
243+
Each supported CNI variant comes with its own set of port requirements; RKE2 documentation details those per each of the supported CNI plugins, see https://docs.rke2.io/install/requirements#cni-specific-inbound-network-rules
244+
245+
In case of setting `cilium` as default/primary CNI plugin, the following port must be added to the list of externally exposed TCP ports (as provided by RKE2 documentation) when the cilium-operator workload is configured to expose metrics outside the kubernetes cluster it is deployed on (so an external Prometheus server instance running outside that kubernetes cluster can still collect them):
246+
247+
NOTE: This is the default option when deploying cilium from SUSE rke2-cilium Helm chart (https://rke2-charts.rancher.io/assets/rke2-cilium/rke2-cilium-<major>.<minor>.<patch>.tgz).
248+
249+
|===
250+
| Protocol | Port | Source | Description
251+
| TCP
252+
| 9963
253+
| External (to the kubernetes cluster) metrics collector
254+
| cilium-operator metrics exposure
255+
|===
256+
257+
258+
63259
=== Services (DHCP, DNS, etc.)
64260

65261
Some external services like `DHCP`, `DNS`, etc. could be required depending on the kind of environment where they are deployed:

0 commit comments

Comments
 (0)