Ash_this
Ash_this

Reputation: 63

What happens when you scale down a Kubernetes Pod?

When you decrease the number of pods in a Kubernetes workload, I am assuming it is doing a soft kill. Does it start that process by stopping incoming connections? In an event-driven microservice environment, where container reads message from a queue. When I deploy, what happens to the message that are currently being processed. Does it stop taking messages from the queue?

Upvotes: 1

Views: 2172

Answers (1)

Jonas
Jonas

Reputation: 128955

When you decrease the number of pods in a kubernetes workload, i am assuming it is doing a soft kill.

Yes, it does a graceful termination, so your pod get a SIGTERM signal, but it is up to you to implement this handling in the app, before the pod is killed after the configured graceful termination period, by default 30 seconds but can be configured with the terminationGracePeriodSeconds field of the Pod.

In an event-driven microservice environment, where container reads message from a queue. When i deploy, what happens to the message that are currently being processed. Does is stop taking messages from the queue?

As explained above, your app needs to implement the handling of the SIGTERM signal and e.g. stop consuming new messages from the queue. You also need to properly configure the terminationGracePeriodSeconds so that messages can fully be processed before the pod is evicted.

A good explanation of this is Kubernetes best practices: terminating with grace

Does it start that process by stopping incoming connections?

Yes, your pod is removed from the Kubernetes Endpoint list, so it should work if you access your pods via Services.

Upvotes: 4

Related Questions