Uploaded image for project: 'Couchbase Kubernetes'
  1. Couchbase Kubernetes
  2. K8S-1713

Expose port 11207 on all Couchbase Server pods



    • Bug
    • Resolution: Fixed
    • Major
    • 2.1.0
    • None
    • operator
    • None
    • 41: 2.2, Bugs.
    • 1


      Today the ports exposed for Couchbase Server pods are dependent on the service.
      This makes sense as there's no point exposing port 18093 (query service) on a data node for example.

      Since Couchbase Server 6.5 and SDK 3.x with the introduction of GCCCP (Matt Ingenthron can probably fill you in on the details), the SDKs can bootstrap of off any node in the cluster using the Data Service (port 11207).
      This means that we should be exposing port 11207 for every single Couchbase Server pod, so that the SDK can use this port for bootstrapping.
      Today due to the filtering you get loads of nasty errors if you hit a pod that isn't data:

      Caused by: java.net.ConnectException: finishConnect(..) failed: Connection refused
      	at com.couchbase.client.core.deps.io.netty.channel.unix.Errors.throwConnectException(Errors.java:124)
      	at com.couchbase.client.core.deps.io.netty.channel.unix.Socket.finishConnect(Socket.java:251)
      	at com.couchbase.client.core.deps.io.netty.channel.kqueue.AbstractKQueueChannel$AbstractKQueueUnsafe.doFinishConnect(AbstractKQueueChannel.java:655)
      	at com.couchbase.client.core.deps.io.netty.channel.kqueue.AbstractKQueueChannel$AbstractKQueueUnsafe.finishConnect(AbstractKQueueChannel.java:635)
      	at com.couchbase.client.core.deps.io.netty.channel.kqueue.AbstractKQueueChannel$AbstractKQueueUnsafe.shutdownInput(AbstractKQueueChannel.java:449)
      	at com.couchbase.client.core.deps.io.netty.channel.kqueue.AbstractKQueueChannel$AbstractKQueueUnsafe.readEOF(AbstractKQueueChannel.java:486)
      	at com.couchbase.client.core.deps.io.netty.channel.kqueue.KQueueEventLoop.processReady(KQueueEventLoop.java:213)
      	at com.couchbase.client.core.deps.io.netty.channel.kqueue.KQueueEventLoop.run(KQueueEventLoop.java:289)
      	at com.couchbase.client.core.deps.io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
      	at com.couchbase.client.core.deps.io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
      	at com.couchbase.client.core.deps.io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
      	at java.base/java.lang.Thread.run(Thread.java:834)

      While the Operator does filter its own SRV record to only include data nodes, for completeness and flexibility we should be exposing port 11207 on all pods.
      Some SDK implementations may expect that this is available.


        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.



              simon.murray Simon Murray
              matt.carabine Matt Carabine (Inactive)
              0 Vote for this issue
              2 Start watching this issue



                Gerrit Reviews

                  There are no open Gerrit changes