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.
>

Reply via email to