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 <[email protected]> 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 <[email protected]
> >:
>>
>> 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.
>