Bug 1960284
Summary: | ExternalTrafficPolicy Local does not preserve connections correctly on shutdown, policy Cluster has significant performance cost | ||
---|---|---|---|
Product: | OpenShift Container Platform | Reporter: | Clayton Coleman <ccoleman> |
Component: | Networking | Assignee: | Miciah Dashiel Butler Masters <mmasters> |
Networking sub component: | router | QA Contact: | Hongan Li <hongli> |
Status: | CLOSED ERRATA | Docs Contact: | |
Severity: | urgent | ||
Priority: | urgent | CC: | amcdermo, aos-bugs, bbennett, cholman, sgreene, swasthan, wking |
Version: | 4.8 | ||
Target Milestone: | --- | ||
Target Release: | 4.8.0 | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | If docs needed, set a value | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2021-07-27 23:08:23 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Clayton Coleman
2021-05-13 14:10:04 UTC
There is a workaround for DNS in kube-proxy that for local traffic services when no endpoints are possible uses any endpoint, which is roughly the behavior we want. The workaround is currently based on service name. It would be better to use an annotation for both dns, ingress, and the service availability test and be consistent. To clarify, additionally we cannot set ExternalTrafficPolicy for ingress to Cluster because that would result in an extra hop (SLB only use health check to filter the set when ExternalTrafficPolicy is Local, and we can't change the behavior on short notice for either of the existing options by default without potentially impacting customer workloads). Specifically workaround https://github.com/openshift/sdn/pull/254 Verified with 4.8.0-0.nightly-2021-06-08-005718 and passed. $ oc get clusterversion NAME VERSION AVAILABLE PROGRESSING SINCE STATUS version 4.8.0-0.nightly-2021-06-08-005718 True False 56m Cluster version is 4.8.0-0.nightly-2021-06-08-005718 ### LB service has the annotation by default $ oc -n openshift-ingress get svc/router-default -oyaml apiVersion: v1 kind: Service metadata: annotations: traffic-policy.network.alpha.openshift.io/local-with-fallback: "" ### set localWithFallback as "false" can remove the annotation from the LB service. spec: unsupportedConfigOverrides: localWithFallback: "false" ### NodePort service also has the annotation by default $ oc -n openshift-ingress get svc/router-nodeport-nodeport -oyaml apiVersion: v1 kind: Service metadata: annotations: traffic-policy.network.alpha.openshift.io/local-with-fallback: "" Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory (Moderate: OpenShift Container Platform 4.8.2 bug fix and security update), and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHSA-2021:2438 |