Hi all!
I was looking at the documentation for the Jira Data Center Helm Charts, and on the Limitations page, there are two issues that are identified as blockers for horizontal scaling:
At present there are issues relating to index replication with Jira when immediately scaling up by more than 1 pod at a time.
Indexing improvements
Please note that Jira is actively being worked on to address these issues in the coming releases.
Although these issues are Jira specific, they are exasperated on account of the significantly reduced startup times for Jira when running in a Kubernetes cluster. As such these issues can have an impact on horizontal scaling if you don't take the correct approach.
I've noticed that both of the linked issues have been resolved as of 9.1.0.
Should I take this to mean that you can now scale horizontally using a statefulSet replica number higher than 1 as mandated below?
Horizontal scaling - adding pods¶
The Helm charts provision one
StatefulSet
by default. The number of replicas within thisStatefulSet
can be altered either declaratively or imperatively. Note that the Ingress must support cookie-based session affinity in order for the products to work correctly in a multi-node configuration.DeclarativelyImperatively
- Update
values.yaml
by modifying thereplicaCount
appropriately.- Apply the patch:
helm upgrade <release> <chart> -f <values file>
Initial cluster size
Jira, Confluence, and Crowd all require manual configuration after the first pod is deployed and before scaling up to additional pods, therefore when you deploy the product only one pod (replica) is created. The initial number of pods that should be started at deployment of each product is set in the
replicaCount
variable found in the values.yaml and should always be kept as 1.
Thanks for the assistance!
@Bryan Guffey let me clarify things.
1. You can scale Jira (like any DC product except Bamboo) to more than 1 replica. You can't scale more than 1 at a time but this is the default behavior of K8s StatefulSet. So, if you scale to 3, you will see pod-1 first, and pod-2 will be created only after pod-1 passes its readiness probe (which can take some time since index recovery can be a lengthy process on large datasets)
2. When you deploy DC products for the first time and you need to finish setup you should always start with 1 replica, and scale up after the set up
3. Because of a long cold start time and destructive nature of scale down, as well as the need for session affinity, Horizontal Pod Autoscaler (HPA) can be less effective, or destructive in case of a scale down. That's why using HPA is quite risky.
Thanks, Yevhen! This is excellent. I assume this *specifically* applies to versions of Jira that are 9.1 or later, correct?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
@Yevhen - following up to my question regarding Jira versions!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
@Bryan Guffey yes, Jira 9.1.x is known to have a much more robost mechanism of restoring cache which is especially important when nodes start.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Bryan - I am not looking to answer you question, but to clarify it for my own interests and looking to see if the real answer supports something that I need.
Your question of "Should I take this to mean that you can now scale horizontally using a statefulSet replica number higher than 1 as mandated below? " relates ONLY with the ability to scale horizontally for Jira, not with the fact that with large Jira instances, index replication may take a long time.
In other words, I can now scale Jira horizontally multiple nodes at the same time, but if i have a large data set, it still may be a little while before those nodes are actually usable?
Thanks!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.