How to run a Yellowfin cluster with session-replication on Kubernetes?

Machiel Treffers shared this question 10 months ago
Completed

Hello,

We are currently running a Yellowfin cluster on Google's Kubernetes environment. To make sure user session are working properly, we enabled sticky session (using a session cookie) on our Ingress.

In principle this works well, but whenever a pod gets restarted all current Yellowfin sessions pointing to that pod are killed. Some periods, the Kubernetes cluster is more volatile and we multiple restarts in a short timeframe. Unfortunately this leads to frustration with our stakeholders, as they face a lot of forced sign-offs.

I can recall that we tried to get session replication working on Kubernetes, but never succeeded.
We followed docs such as these and these.

Before giving this another go, I'd like to know if you are aware of any cases where the above did succeed? And if so: could you please point me to some doc's or other references?

Thanks!

Best regards,

Machiel

Replies (10)

photo
1

Your issue could possibly be due to the Google environment not supporting UDP multicast. See the specifications section here: https://cloud.google.com/vpc/docs/vpc

We're on AWS which has a similar restriction (although there does seem to be a workaround for AWS now).

In order to get session replication to work, you need to change the cluster servlet to a static membership one and manually specify the nodes in the cluster. The downsides to this approach is that you cannot dynamically scale and must have the details of the nodes ahead of time

Attached is an example servlet you can add to server.xml. You must add this to each node with the details changed to reference the other node/nodes in the cluster

In the <Member> element you add the IP or Domain of the other nodes

You may also need to change node discovery to the repository DB version

Hope that helps!

photo
1

Hi Machiel,

Thanks for reaching out to Yellowfin support.

I hope the below information provided by Dean Flinter will be helpful in resolving your issue. Could you please give it a try and let us know how it goes. If you have any further questions or require additional assistance, please feel free to reach out to us, we would be happy to assist further.

Regards,
Sri Vamsi

photo
1

Hi Machiel,


Greetings for the Day!

We would like to check, with you if you had the opportunity to read our last response.

Request, you to review and let us know if you have any questions or further assistance is required.

Regards

Sri Vamsi

photo
1

Hi Dean, Sri,

Thank you for your replies. I was not yet able to test this, but I have a question on the following quote:

In order to get session replication to work, you need to change the cluster servlet to a static membership one and manually specify the nodes in the cluster. The downsides to this approach is that you cannot dynamically scale and must have the details of the nodes ahead of time
I am wondering how this will work in a Kubernetes environment? As far as I am aware, if a pod get reprovisioned, the new pod will receive a new IP (I assume where the quote mentions "node", it means "pods").

Thanks!

Best regards,

Machiel

photo
1

Hi Machiel,

I'm not actually familiar with Kubernetes but yeah in this case a pod is the equivalent

As for the IP changing, I believe you can also specify a domain for the other pods if that is a thing in Kubernetes. I can't quite remember if we use IP or domain

Here's the documentation on static membership which might help: https://tomcat.apache.org/tomcat-9.0-doc/config/cluster-membership.html#Static_Membership_Attributes


Thanks

Dean

photo
1

Hi Dean,

Thanks for the additional information, I'll have a look at it.

Best regards,

Machiel

photo
1

Hi Machiel,

Greetings of the Day!

We kindly request you to give it a try and let us know how it goes. If you encounter any difficulties or require further clarification, please don't hesitate to reach out to us.

We look forward to hearing from you soon.

Regards,

Sri Vamsi

photo
1

Hello Machiel,

Greetings for the Day!

We would like to check, with you if you had the opportunity to read our last response.

Request, you to review and let us know if you have any questions or further assistance is required.


Regards

Sri Vamsi

photo
1

Hello Sri,

Thank you for your reply. Unfortunately I did not yet have the change to get any further with this. As I notice a little pressure here, please feel free to close the ticket. I'll start to work with the provided information and open a new ticket if any other questions arise.

Best regards,

Machiel

photo
1

Hi Machiel,

Thanks for your response. I apologize for any inconvenience caused. If you have any further questions or need assistance in future, please feel free to reach out to us.

Good luck with your work, and have a great day!

regards,

Sri Vamsi

Leave a Comment
 
Attach a file