|
5 | 5 | [id="installation-osp-kuryr-known-limitations_{context}"] |
6 | 6 | = Known limitations of installing with Kuryr |
7 | 7 |
|
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 | + |
0 commit comments