Forum Discussion

Antonio_Varni's avatar
Antonio_Varni
Icon for Nimbostratus rankNimbostratus
Apr 28, 2017

F5 kubernetes f5 controller failing to compose 'poolMemberAddrs' and failing to generate F5 objects

Hi - I set this up: http://clouddocs.f5.com/products/connectors/k8s-bigip-ctlr/v1.0/ and getting errors after uploading my configmap and an applicable service:

2017/04/28 23:43:30 [INFO] File "/app/python/_f5.py", line 393, in _create_ltm_config_kubernetes 2017/04/28 23:43:30 [INFO] for node in backend['poolMemberAddrs']: 2017/04/28 23:43:30 [INFO] TypeError: 'NoneType' object is not iterable

The config file generated by /app/bin/k8s-bigip-ctlr does not populate "poolMemberAddrs" so the python f5 handler /app/python/bigipconfigdriver.py is crashing since it cannot figure out the nodeport targets:

/app  cat /tmp/k8s-bigip-ctlr.config281602422/config.json

{"bigip":{"username":"xxxxxxxxx","password":"yyyyyyyy","url":";:["k8s"]},"global":{"log-level":"INFO","verify-interval":30},"services":[{"virtualServer":{"backend":{"serviceName":"av-service","servicePort":30000,"poolMemberPort":0,"poolMemberAddrs":null},"frontend":{"virtualServerName":"default_av-service","partition":"k8s","balance":"round-robin","mode":"http","virtualAddress":{"bindAddr":"1.2.3.4","port":80},"iappPoolMemberTable":{"name":"","columns":null}}}}]}/app

I ran out of anything helpful with debug statements or documentation about the closed source go binary...

io:$ kubectl get services/av-service -o wide
NAME         CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE       SELECTOR
av-service   10.25.104.158          80:30000/TCP   2h        app=av

io:$ kubectl get nodes -o jsonpath='{.items[*].status.addresses[?(@.type=="InternalIP")].address}'
10.25.82.193 10.25.82.65 10.25.83.54

Is this the right place to ask about what possible reasons the controller is crashing here?

  • You're configmap looks ok, but can you post the output of that file you applied to your cluster?

    kubectl get configmap ${F5_CONFIGMAP} -o yaml

    Also, what version of Kubernetes are you running? v1.6?

  • Hello everyone,

     

    i was able to make work of creating VS on F5 with Kubernetes 1.6.4 by setting permissive RBAC settings using this command.

     

    kubectl create clusterrolebinding add-on-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:default

     

    It can be seen at the end of this document

     

    Edit: It is possible that it is not a complete fix. I saw some messages in syslog about the pool ip addresses. Now I see a virtual server in F5, but still no pool members. I'm using same ConfigMap that is in this thread.

     

    Edit2: The RBAC setting did not help. If anyone has any suggestions, i'm willing to test them.

     

    • rsal_79565's avatar
      rsal_79565
      Historic F5 Account

      The F5 container connector doesn't support v1.6 just yet. Work is happening now to add support for this. Mainly because v1.6.x requires RBAC. So the k8s-bigip-ctlr needs to have a cluster role in order to access the API server.

       

      I can update you as the dev team makes progress on this.