How to run a Yellowfin cluster with session-replication on Kubernetes?
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
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!
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!
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
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
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
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
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:
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
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:
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
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
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
Hi Dean,
Thanks for the additional information, I'll have a look at it.
Best regards,
Machiel
Hi Dean,
Thanks for the additional information, I'll have a look at it.
Best regards,
Machiel
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
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
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
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
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
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
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
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
Replies have been locked on this page!