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.

Reply via email to