Hi Thomas, Thanks for pointing me to another option which is the DNSMembershipService.
Hope you can help to clarify two things in the dns-membership-service.yml: 1. For spec.port, is port 8888 mandatory? Or can it be any other number? I checked the source code for DNSMembershipService.java and can't find reference to the port number in it. 2. For spec.selector.app, is this the name to my tomcat app name ( metadata.labels.app) ? Thanks. Regards, Kok Hoor [image: width=] <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail> Virus-free.www.avast.com <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail> <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2> On Sun, 14 Aug 2022 at 17:01, Thomas Meyer <tho...@m3y3r.de> wrote: > Hi, > > Two remarks from my side: > 1. CloudMembershipService is not so usable, and seems to originally target > OpenShift. To make it work you need to create ServiceAccount and give read > permission for listing all pods in namespace. This seems to be missing in > your case. It also has some assumptions about namespaces and naming of k8s > manifests/objects. > > 2. DNSMembershipService is much easier to use, I suggest you to have a > look at this instead: > https://tomcat.apache.org/tomcat-9.0-doc/api/org/apache/catalina/tribes/membership/cloud/DNSMembershipProvider.html > For this Membership Provider you only need to add headless Service > manifest, I.e. ClusterIP: none. > > Mfg > Thomas > > Am 14. August 2022 09:52:52 MESZ schrieb Chew Kok Hoor <kokh...@gmail.com > >: >> >> Hi, >> >> I am trying to setup Tomcat clustering running in AKS, however the >> standard settings don't seem to work. >> >> As per the documentation I have setup following Cluster configuration in >> server.xml inside my <Host> tag: >> <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"> >> <Channel >> className="org.apache.catalina.tribes.group.GroupChannel"> >> <Membership >> className="org.apache.catalina.tribes.membership.cloud.CloudMembershipService"/> >> </Channel> >> </Cluster> >> >> But I received a 'Failed connection to >> https://10.0.0.1:443/api/v1/namespaces/tomcat/pods' error. Is there any way >> to resolve this? >> >> Error message: >> >> INFO: Cluster is about to start >> Aug 14, 2022 3:44:26 PM org.apache.catalina.tribes.transport.ReceiverBase >> bind >> INFO: Receiver Server Socket bound to:[/10.240.0.76:4000] >> Aug 14, 2022 3:44:26 PM >> org.apache.catalina.tribes.membership.cloud.CloudMembershipProvider >> getNamespace >> WARNING: Namespace not set >> Aug 14, 2022 3:44:26 PM >> org.apache.catalina.tribes.membership.cloud.KubernetesMembershipProvider >> fetchMembers >> SEVERE: Failed to open stream >> java.io.IOException: Failed connection to [ >> https://10.0.0.1:443/api/v1/namespaces/tomcat/pods] with token >> [--redacted--] >> at >> org.apache.catalina.tribes.membership.cloud.TokenStreamProvider.openStream(TokenStreamProvider.java:56) >> at >> org.apache.catalina.tribes.membership.cloud.KubernetesMembershipProvider.fetchMembers(KubernetesMembershipProvider.java:136) >> at >> org.apache.catalina.tribes.membership.cloud.CloudMembershipProvider.heartbeat(CloudMembershipProvider.java:127) >> at >> org.apache.catalina.tribes.membership.cloud.KubernetesMembershipProvider.start(KubernetesMembershipProvider.java:116) >> at >> org.apache.catalina.tribes.membership.cloud.CloudMembershipService.start(CloudMembershipService.java:152) >> at >> org.apache.catalina.tribes.group.ChannelCoordinator.internalStart(ChannelCoordinator.java:192) >> at >> org.apache.catalina.tribes.group.ChannelCoordinator.start(ChannelCoordinator.java:106) >> at >> org.apache.catalina.tribes.group.ChannelInterceptorBase.start(ChannelInterceptorBase.java:190) >> at >> org.apache.catalina.tribes.group.ChannelInterceptorBase.start(ChannelInterceptorBase.java:190) >> at >> org.apache.catalina.tribes.group.interceptors.MessageDispatchInterceptor.start(MessageDispatchInterceptor.java:224) >> at >> org.apache.catalina.tribes.group.ChannelInterceptorBase.start(ChannelInterceptorBase.java:190) >> at >> org.apache.catalina.tribes.group.GroupChannel.start(GroupChannel.java:504) >> at >> org.apache.catalina.ha.tcp.SimpleTcpCluster.startInternal(SimpleTcpCluster.java:564) >> at >> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) >> at >> org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:908) >> at >> org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:835) >> at >> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) >> at >> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1396) >> at >> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1386) >> at java.base/java.util.concurrent.FutureTask.run(Unknown Source) >> at >> org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) >> at >> java.base/java.util.concurrent.AbstractExecutorService.submit(Unknown >> Source) >> at >> org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:919) >> at >> org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:265) >> at >> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) >> at >> org.apache.catalina.core.StandardService.startInternal(StandardService.java:432) >> at >> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) >> at >> org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:930) >> at >> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) >> at org.apache.catalina.startup.Catalina.start(Catalina.java:772) >> at >> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native >> Method) >> at >> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown >> Source) >> at >> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown >> Source) >> at java.base/java.lang.reflect.Method.invoke(Unknown Source) >> at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345) >> at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476) >> Caused by: java.io.IOException: Server returned HTTP response code: 403 for >> URL: https://10.0.0.1:443/api/v1/namespaces/tomcat/pods >> at >> java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown >> Source) >> at >> java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown >> Source) >> at >> java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown >> Source) >> at >> org.apache.catalina.tribes.membership.cloud.AbstractStreamProvider.openStream(AbstractStreamProvider.java:110) >> at >> org.apache.catalina.tribes.membership.cloud.TokenStreamProvider.openStream(TokenStreamProvider.java:53) >> ... 35 more >> >> Aug 14, 2022 3:44:27 PM org.apache.catalina.ha.session.JvmRouteBinderValve >> startInternal >> INFO: JvmRouteBinderValve started >> >> Thanks. >> >> Regards, >> Kok Hoor >> >> [image: width=] >> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail> >> Virus-free.www.avast.com >> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail> >> <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2> >> >> -- > Diese Nachricht wurde von meinem Android-Gerät mit K-9 Mail gesendet. >