Bug 1938282
| Summary: | [4.9] Kuryr won't remove LB members on Endpoints object removal | ||
|---|---|---|---|
| Product: | OpenShift Container Platform | Reporter: | Michał Dulko <mdulko> |
| Component: | Networking | Assignee: | Robin Cernin <rcernin> |
| Networking sub component: | kuryr | QA Contact: | rlobillo |
| Status: | CLOSED ERRATA | Docs Contact: | |
| Severity: | medium | ||
| Priority: | low | CC: | mdemaced, rcernin |
| Version: | 4.8 | Keywords: | Triaged |
| Target Milestone: | --- | ||
| Target Release: | 4.9.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-10-18 17:29:21 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: | |||
| Bug Depends On: | |||
| Bug Blocks: | 1995013 | ||
|
Description
Michał Dulko
2021-03-12 17:09:59 UTC
Verified on 4.9.0-0.nightly-2021-08-31-123131 on top of OSP16.1 (RHOS-16.1-RHEL-8-20210604.n.0) with OVN-Octavia.
# Given below project:
$ oc get all -n demo -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
pod/demo-7897db69cc-hrgzb 1/1 Running 0 20h 10.128.130.64 ostest-87ddk-worker-0-2bhm6 <none> <none>
pod/demo-7897db69cc-l826k 1/1 Running 0 20h 10.128.130.57 ostest-87ddk-worker-0-2bhm6 <none> <none>
pod/demo-7897db69cc-pp4jj 1/1 Running 0 20h 10.128.130.212 ostest-87ddk-worker-0-rsd89 <none> <none>
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
service/my-service ClusterIP 172.30.107.36 <none> 8080/TCP 81s <none>
NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR
deployment.apps/demo 3/3 3 3 20h demo quay.io/kuryr/demo app=demo
NAME DESIRED CURRENT READY AGE CONTAINERS IMAGES SELECTOR
replicaset.apps/demo-7897db69cc 3 3 3 20h demo quay.io/kuryr/demo app=demo,pod-template-hash=7897db69cc
# A service without selector is created:
$ cat service_wo_selectors.yaml
apiVersion: v1
kind: Service
metadata:
name: my-service
namespace: demo
spec:
ports:
- protocol: TCP
port: 8080
targetPort: 8080
$ oc apply -f service_wo_selectors.yaml
service/my-service created
# No lb is created on openstack as there are no endpoints:
$ openstack loadbalancer show demo/my-service
Unable to locate demo/my-service in loadbalancers
# Endpoints with the specific PODS IPs is added to my-service service:
$ cat endpoints.yaml
apiVersion: v1
kind: Endpoints
metadata:
name: my-service
namespace: demo
subsets:
- addresses:
- ip: 10.128.130.64
- ip: 10.128.130.57
- ip: 10.128.130.212
ports:
- port: 8080
(shiftstack) [stack@undercloud-0 BZ1938282]$ oc apply -f endpoints.yaml
endpoints/my-service created
# The lb is created on openstack with below endpoints:
$ openstack loadbalancer show demo/my-service
+---------------------+--------------------------------------+
| Field | Value |
+---------------------+--------------------------------------+
| admin_state_up | True |
| created_at | 2021-09-02T10:54:15 |
| description | |
| flavor_id | None |
| id | 54b3ec22-66a3-4eef-a7d1-d221ae576512 |
| listeners | d22fcb0f-5eaf-41e0-9257-39ca8cee4275 |
| name | demo/my-service |
| operating_status | ONLINE |
| pools | 3d512969-2b26-4dd9-9f30-17cbbb645033 |
| project_id | 8493e10827254256b31b4b5ecefc8420 |
| provider | ovn |
| provisioning_status | ACTIVE |
| updated_at | 2021-09-02T10:54:49 |
| vip_address | 172.30.107.36 |
| vip_network_id | 755e0bef-ad65-46ac-abac-3e183daf050e |
| vip_port_id | 16824d3b-e9ae-4e73-95c0-e712502c9079 |
| vip_qos_policy_id | None |
| vip_subnet_id | acc4583a-e935-4a2b-a06e-db1f3f4a77f5 |
+---------------------+--------------------------------------+
$ openstack loadbalancer member list $(openstack loadbalancer show demo/my-service -c pools -f value)
+--------------------------------------+----------------------+----------------------------------+---------------------+----------------+---------------+------------------+--------+
| id | name | project_id | provisioning_status | address | protocol_port | operating_status | weight |
+--------------------------------------+----------------------+----------------------------------+---------------------+----------------+---------------+------------------+--------+
| 0e73175a-5794-489e-ac34-3544e565b8c5 | demo/my-service:8080 | 8493e10827254256b31b4b5ecefc8420 | ACTIVE | 10.128.130.64 | 8080 | NO_MONITOR | 1 |
| d0078a7d-0f22-4814-aa96-7b91d5c9e0dc | demo/my-service:8080 | 8493e10827254256b31b4b5ecefc8420 | ACTIVE | 10.128.130.57 | 8080 | NO_MONITOR | 1 |
| 60ae48b2-b608-4241-96c7-4fffe503f455 | demo/my-service:8080 | 8493e10827254256b31b4b5ecefc8420 | ACTIVE | 10.128.130.212 | 8080 | NO_MONITOR | 1 |
+--------------------------------------+----------------------+----------------------------------+---------------------+----------------+---------------+------------------+--------+
# The svc is working as expected:
$ oc rsh demo-7897db69cc-hrgzb curl 172.30.107.36:8080
demo-7897db69cc-hrgzb: HELLO! I AM ALIVE!!!
$ oc rsh demo-7897db69cc-hrgzb curl 172.30.107.36:8080
demo-7897db69cc-l826k: HELLO! I AM ALIVE!!!
# Removing the enpoints object on OCP removes the members but not the loadbalancer.
$ oc delete endpoints my-service
endpoints "my-service" deleted
$ openstack loadbalancer member list $(openstack loadbalancer show demo/my-service -c pools -f value)
$ openstack loadbalancer show demo/my-service
+---------------------+--------------------------------------+
| Field | Value |
+---------------------+--------------------------------------+
| admin_state_up | True |
| created_at | 2021-09-02T10:54:15 |
| description | |
| flavor_id | None |
| id | 54b3ec22-66a3-4eef-a7d1-d221ae576512 |
| listeners | d22fcb0f-5eaf-41e0-9257-39ca8cee4275 |
| name | demo/my-service |
| operating_status | ONLINE |
| pools | 3d512969-2b26-4dd9-9f30-17cbbb645033 |
| project_id | 8493e10827254256b31b4b5ecefc8420 |
| provider | ovn |
| provisioning_status | ACTIVE |
| updated_at | 2021-09-02T10:58:17 |
| vip_address | 172.30.107.36 |
| vip_network_id | 755e0bef-ad65-46ac-abac-3e183daf050e |
| vip_port_id | 16824d3b-e9ae-4e73-95c0-e712502c9079 |
| vip_qos_policy_id | None |
| vip_subnet_id | acc4583a-e935-4a2b-a06e-db1f3f4a77f5 |
+---------------------+--------------------------------------+
# Removing the service removes the loadbalancer:
$ oc delete service/my-service
service "my-service" deleted
$ openstack loadbalancer show demo/my-service
Unable to locate demo/my-service in loadbalancers
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.9.0 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:3759 |