Skip to content

Commit 861b14c

Browse files
committed
Update Kuryr known limitations
Some of the limitations has been fixed when using OpenStack 16 version of Octavia. This patch adds that information
1 parent 62d048d commit 861b14c

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)