kubernetes headless service cause AddrFormatError

Bug #1732597 reported by changhongli
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
kuryr-kubernetes
Fix Released
Medium
changhongli

Bug Description

when create headless service in kubernetes , cause kuryr-k8s-controller AddrFormatError
===service.yml======
apiVersion: v1
kind: Service
metadata:
  name: nginx-web
  labels:
    name: zabbix-web
spec:
  ports:
  - port: 80
    targetPort: 80
    protocol: TCP
  clusterIP: None
  selector:
    app: nginx1
===================
error log
=====================
2017-11-16 13:43:21.761 19690 DEBUG kuryr_kubernetes.handlers.dispatch [-] 1 handler(s) available __call__ /opt/kuryr/local/lib/python2.7/site-packages/kuryr_kubernetes/handlers/dispatch.py:62
2017-11-16 13:43:21.787 19690 DEBUG kuryr_kubernetes.controller.handlers.lbaas [-] === [('be7d3194-e7fb-4b55-a86b-489437ffd87e', Network(bridge=<?>,bridge_interface=<?>,id=d7064691-7695-4c26-b9be-b001dafbc77f,label='private',mtu=1450,multi_host=False,should_provide_bridge=False,should_provide_vlan=False,subnets=SubnetList,vlan=<?>))] _get_subnet_id /opt/kuryr/local/lib/python2.7/site-packages/kuryr_kubernetes/controller/handlers/lbaas.py:79
2017-11-16 13:43:21.788 19690 ERROR kuryr_kubernetes.handlers.logging [-] Failed to handle event {u'object': {u'status': {u'loadBalancer': {}}, u'kind': u'Service', u'spec': {u'clusterIP': u'None', u'sessionAffinity': u'None', u'type': u'ClusterIP', u'ports': [{u'targetPort': 80, u'protocol': u'TCP', u'port': 80}], u'selector': {u'app': u'nginx1'}}, u'apiVersion': u'v1', u'metadata': {u'name': u'nginx-web', u'labels': {u'name': u'zabbix-web'}, u'namespace': u'default', u'resourceVersion': u'115460', u'creationTimestamp': u'2017-11-16T03:53:27Z', u'selfLink': u'/api/v1/namespaces/default/services/nginx-web', u'uid': u'b42431f4-ca81-11e7-b4eb-fa163e11656c'}}, u'type': u'ADDED'}: AddrFormatError: failed to detect a valid IP address from u'None'
2017-11-16 13:43:21.788 19690 ERROR kuryr_kubernetes.handlers.logging Traceback (most recent call last):
2017-11-16 13:43:21.788 19690 ERROR kuryr_kubernetes.handlers.logging File "/opt/kuryr/local/lib/python2.7/site-packages/kuryr_kubernetes/handlers/logging.py", line 37, in __call__
2017-11-16 13:43:21.788 19690 ERROR kuryr_kubernetes.handlers.logging self._handler(event)
2017-11-16 13:43:21.788 19690 ERROR kuryr_kubernetes.handlers.logging File "/opt/kuryr/local/lib/python2.7/site-packages/kuryr_kubernetes/handlers/retry.py", line 61, in __call__
2017-11-16 13:43:21.788 19690 ERROR kuryr_kubernetes.handlers.logging self._handler(event)
2017-11-16 13:43:21.788 19690 ERROR kuryr_kubernetes.handlers.logging File "/opt/kuryr/local/lib/python2.7/site-packages/kuryr_kubernetes/handlers/k8s_base.py", line 63, in __call__
2017-11-16 13:43:21.788 19690 ERROR kuryr_kubernetes.handlers.logging self.on_present(obj)
2017-11-16 13:43:21.788 19690 ERROR kuryr_kubernetes.handlers.logging File "/opt/kuryr/local/lib/python2.7/site-packages/kuryr_kubernetes/controller/handlers/lbaas.py", line 56, in on_present
2017-11-16 13:43:21.788 19690 ERROR kuryr_kubernetes.handlers.logging lbaas_spec = self._generate_lbaas_spec(service)
2017-11-16 13:43:21.788 19690 ERROR kuryr_kubernetes.handlers.logging File "/opt/kuryr/local/lib/python2.7/site-packages/kuryr_kubernetes/controller/handlers/lbaas.py", line 98, in _generate_lbaas_spec
2017-11-16 13:43:21.788 19690 ERROR kuryr_kubernetes.handlers.logging subnet_id = self._get_subnet_id(service, project_id, ip)
2017-11-16 13:43:21.788 19690 ERROR kuryr_kubernetes.handlers.logging File "/opt/kuryr/local/lib/python2.7/site-packages/kuryr_kubernetes/controller/handlers/lbaas.py", line 82, in _get_subnet_id
2017-11-16 13:43:21.788 19690 ERROR kuryr_kubernetes.handlers.logging for subnet_id, network in subnets_mapping.items()
2017-11-16 13:43:21.788 19690 ERROR kuryr_kubernetes.handlers.logging File "/opt/kuryr/local/lib/python2.7/site-packages/kuryr_kubernetes/controller/handlers/lbaas.py", line 84, in <setcomp>
2017-11-16 13:43:21.788 19690 ERROR kuryr_kubernetes.handlers.logging if ip in subnet.cidr}
2017-11-16 13:43:21.788 19690 ERROR kuryr_kubernetes.handlers.logging File "/opt/kuryr/local/lib/python2.7/site-packages/netaddr/ip/__init__.py", line 1123, in __contains__
2017-11-16 13:43:21.788 19690 ERROR kuryr_kubernetes.handlers.logging return IPAddress(other) in self
2017-11-16 13:43:21.788 19690 ERROR kuryr_kubernetes.handlers.logging File "/opt/kuryr/local/lib/python2.7/site-packages/netaddr/ip/__init__.py", line 306, in __init__
2017-11-16 13:43:21.788 19690 ERROR kuryr_kubernetes.handlers.logging 'address from %r' % addr)
2017-11-16 13:43:21.788 19690 ERROR kuryr_kubernetes.handlers.logging AddrFormatError: failed to detect a valid IP address from u'None'
2017-11-16 13:43:21.788 19690 ERROR kuryr_kubernetes.handlers.logging

Changed in kuryr-kubernetes:
status: New → Confirmed
importance: Undecided → Medium
information type: Public → Public Security
information type: Public Security → Public
Revision history for this message
Irena Berezovsky (irenab) wrote :

Currently headless services are not supported by kuryr.
Based on the details at Kubernetes documentation https://kubernetes.io/docs/concepts/services-networking/service/#headless-services, such service should not be load balanced by the platform .

Changed in kuryr-kubernetes:
assignee: nobody → changhongli (hongli.chang)
status: Confirmed → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to kuryr-kubernetes (master)

Reviewed: https://review.openstack.org/520309
Committed: https://git.openstack.org/cgit/openstack/kuryr-kubernetes/commit/?id=00c5f004858a37de99b9ac171be260f6773995cc
Submitter: Zuul
Branch: master

commit 00c5f004858a37de99b9ac171be260f6773995cc
Author: changhongli <hongli_my2014@163.com>
Date: Thu Nov 16 14:31:56 2017 +0800

    Ignore the headless services

    Headless services should not be load-balanced by the platform. This
    commit makes sure such services are ignored by Kuryr.

    Closes-Bug: #1732597
    Change-Id: I39736791f0b3b3fba24f6bdc93a2950751e50147

Changed in kuryr-kubernetes:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/kuryr-kubernetes 0.3.0

This issue was fixed in the openstack/kuryr-kubernetes 0.3.0 release.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.