-
Notifications
You must be signed in to change notification settings - Fork 290
PROPOSAL: Reduce init container memory from 500Mi to 64Mi #1863
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
When originally developed, it wasn't clear what would need to be done in the init container. With hindsight, there's very little to do and the init phase hasn't changed in a long time. We also assumed that the resources requested for the init container would effectively be reused by the actual `rabbitmq` container later. Turns out that's not the case: kubernetes/kubernetes#124282 init container resources are considered even after the init container completes its task.
We tested with this resources:
All working good. I think we can install:
without any potential issues for users |
I like this proposal 👍 The init container doesn't do anything special, and it uses very basic shell commands like |
pls add changes to |
@Zerpet I've also pushed a change in CPU from 100m to 20m. Still ok with this? |
|
Yeah, I even tried what happens if I try to use |
@mkuratczyk @Zerpet Thank you! Сan I know when to expect a release with these changes? |
There's just not that much to release usually. The Operator as it is, seems to be working well for a lot of people. One thing you I'd love to hear your input for is whether it's a problem that this change, as currently implemented, would restart all those clusters you have, since changes to the StatefulSet definition cause a restart. We could make some tweaks to prevent this I think |
I understand that restarting all RabbitMQ clusters is an unpleasant situation and could indeed cause dissatisfaction among users. However, in my case, I don’t consider this a problem. If someone deployed a RabbitMQ cluster with a single instance and expects 100% SLA—that’s the problem of whoever set it up that way. Besides the reboot, such RabbitMQ installations cannot be considered stable, as a pod can be terminated for a multitude of reasons, and changes to the StatefulSet are just one of them! If the RabbitMQ cluster is deployed with more than one node, updating the StatefulSet should proceed without performance issues. |
Version 2.13.0 is now available: |
It'd be great to get some feedback from users who changed the default init container resources - what did you change them to? I've tested successfully deployed RabbitMQ with a
50Mi
init container using:rabbitmq:4.1-management
bitnami/rabbitmq:4.1
rabbitmq.packages.broadcom.com/vmware-tanzu-rabbitmq:4.1.0
Given that an init container failure would be a terrible user experience, I'd rather have some headroom, hence
64Mi
.When originally developed, it wasn't clear what would need to be done in the init container. With hindsight, there's very little to do and the init phase hasn't changed in a long time.
We also assumed that the resources requested for the init container would effectively be reused by the actual
rabbitmq
container later. Turns out that's not the case: kubernetes/kubernetes#124282 init container resources are considered even after the init container completes its task.This closes #960