BlogsTemporalKubernetes Deployment Tuning

Kubernetes Deployment Tuning

Kubernetes Deployment Tuning

3
posts
2023–2025

This post provides practical tips for deploying and operating Temporal on Kubernetes to achieve predictable latency, safe upgrades, and efficient scale. It covers running the Temporal Service using Helm charts, deploying Temporal Workers, and autoscaling Workers based on Task Queue backlog and Schedule-to-Start latency. It also discusses planning capacity and tuning for production, including addressing CPU throttling and the importance of load testing. The post highlights the Temporal Worker Controller and Worker Versioning for advanced deployment management.

2025

Tips for running Temporal on Kubernetes

12/15/2025

This post details how to deploy and operate Temporal on Kubernetes, including using Helm charts for the Temporal Service, containerizing and deploying Temporal Workers, and implementing autoscaling strategies based on Task Queue backlog and Schedule-to-Start latency. It also emphasizes capacity planning, production tuning, and addressing CPU throttling. The post references the Temporal Worker Controller and Worker Versioning as advanced deployment management features.

2023

Kubernetes CPU Throttling

6/13/2023

This post details how to mitigate Kubernetes CPU throttling by setting the GOMAXPROCS environment variable to match CPU limits for Go applications like Temporal Server. It also advocates for removing CPU limits entirely in favor of CPU requests and provides strategies for managing latency during Temporal Server upgrades by adjusting Kubernetes deployment rollout parameters (maxSurge, maxUnavailable, minReadySeconds, startupProbe) based on the number of history pods.

Scaling Temporal: The basics

5/23/2023

This post details a load testing process involving adjusting load, measuring performance via state transitions and request latency, and scaling Kubernetes resources and Temporal shard count. It highlights the importance of persistence backend as a bottleneck and the impact of shard count on lock contention and memory usage. It also discusses the trade-offs of increasing shard count, such as increased memory usage in History pods, and the current limitation of not being able to change shard count after cluster creation.