Skip to content

Commit cd59471

Browse files
authored
Merge pull request #20728 from luis5tb/kuryr-octavia-configuration
Update Kuryr known limitations
2 parents 4f561ee + 861b14c commit cd59471

File tree

2 files changed

+68
-21
lines changed

2 files changed

+68
-21
lines changed

modules/installation-osp-kuryr-known-limitations.adoc

Lines changed: 54 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,57 @@
55
[id="installation-osp-kuryr-known-limitations_{context}"]
66
= Known limitations of installing with Kuryr
77

8-
There are known limitations when using Kuryr SDN:
9-
10-
* An Amphora load balancer VM is deployed per OpenShift Service with
11-
the default Octavia load balancer driver (Amphora driver). If the environment is
12-
resource constrained, creating a large amount of Services could be a problem.
13-
* Depending on the Octavia version, UDP listeners are not supported. This means
14-
that OpenShift UDP Services are not supported.
15-
* There is a known limitation of Octavia not supporting listeners on different
16-
protocols, like UDP and TCP, on the same port. Thus, Services exposing the same
17-
port for different protocols are not supported.
18-
* Due to the above UDP limitations of Octavia, Kuryr forces Pods to use TCP
19-
for DNS resolution. This is set with the `use-vc` option in `resolv.conf`. This
20-
might be a problem for Pods running Go applications compiled with the `CGO_ENABLED`
21-
flag disabled, as that uses the `go` resolver that only leverages UDP and is not
22-
considering the `use-vc` option added by Kuryr to the `resolv.conf`. This is a
23-
problem also for musl-based containers as its resolver does not support the
24-
`use-vc` option. This includes images built from `alpine`.
8+
Using {product-title} with Kuryr SDN has several known limitations.
9+
10+
[discrete]
11+
[id="openstack-resource-limitations_{context}"]
12+
== {rh-openstack} resource limitations
13+
14+
* An Amphora load balancer VM is deployed per OpenShift Service that uses the
15+
default Octavia load balancer driver (Amphora driver). Creating too many Services
16+
can cause you to run out of resources.
17+
18+
[discrete]
19+
[id="openstack-version-limitations_{context}"]
20+
== {rh-openstack} version limitations
21+
22+
Using {product-title} with Kuryr SDN has several limitations that depend on the {rh-openstack} version.
23+
24+
* Octavia {rh-openstack} versions before 16 do not support UDP listeners. Therefore,
25+
OpenShift UDP services are not supported.
26+
27+
* Octavia {rh-openstack} versions before 16 cannot listen to multiple protocols on the
28+
same port. Services that expose the same port to different protocols, like TCP
29+
and UDP, are not supported.
30+
31+
[IMPORTANT]
32+
====
33+
The OVN Octavia driver does not support listeners that use different protocols on
34+
any {rh-openstack} version.
35+
====
36+
37+
[discrete]
38+
[id="openstack-go-limitations_{context}"]
39+
== {rh-openstack} environment limitations
40+
41+
There are limitations when using Kuryr SDN that depend on your deployment environment.
42+
43+
Because of Octavia's lack of support for the UDP protocol and multiple listeners, Kuryr forces Pods to use TCP
44+
for DNS resolution if:
45+
46+
* The {rh-openstack} version is earlier than 16
47+
* The OVN Octavia driver is used
48+
49+
In Go versions 1.12 and earlier, applications that are compiled with CGO support disabled use UDP only. In this case,
50+
the native Go resolver does not recognize the `use-vc` option in `resolv.conf`, which controls whether TCP is forced for DNS resolution.
51+
As a result, UDP is still used for DNS resolution, which fails.
52+
53+
To ensure that TCP forcing is allowed, compile applications either with the environment variable `CGO_ENABLED` set to `1`, i.e. `CGO_ENABLED=1`, or ensure that the variable is absent.
54+
55+
In Go versions 1.13 and later, TCP is used automatically if DNS resolution using UDP fails.
56+
57+
[INFO]
58+
====
59+
musl-based containers, including Alpine-based containers, do not support the `use-vc` option.
60+
====
61+

modules/installation-osp-kuryr-octavia-configuration.adoc

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -116,13 +116,23 @@ backend is ML2/OVS. There is no need for modifications if the backend is
116116
ML2/OVN.
117117
====
118118

119-
. To enforce network policies across Services, like when traffic goes through
120-
the Octavia load balancer, you must ensure Octavia creates the Amphora VM
121-
security groups on the user project. To do that, you must add the project ID
119+
. In {rh-openstack} versions 13 and 15, add the project ID
122120
to the `octavia.conf` configuration file after you create the project.
121+
* To enforce
122+
network policies across Services, like when traffic goes through
123+
the Octavia load balancer, you must ensure Octavia creates the Amphora VM
124+
security groups on the user project.
123125
+
124-
This ensures that required LoadBalancer security groups belong to that project
126+
This change ensures that required LoadBalancer security groups belong to that project,
125127
and that they can be updated to enforce Services isolation.
128+
+
129+
[NOTE]
130+
====
131+
This task is unnecessary in {rh-openstack} version 16 or later.
132+
133+
Octavia implements a new ACL API that restricts access to the Load
134+
Balancers VIP.
135+
====
126136

127137
.. Get the project ID
128138
+

0 commit comments

Comments
 (0)