Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Zero downtime deployments of .NET Core apps on GKE

Vignesh
August 29, 2019

Zero downtime deployments of .NET Core apps on GKE

In this presentation I'm documenting the learnings along the way of achieving zero down time deployments of .NET Core apps on GKE. This talk briefly talks about liveness & readiness probes, pod lifecycle and service networking and how these affect a deployment.

Vignesh

August 29, 2019
Tweet

More Decks by Vignesh

Other Decks in Technology

Transcript

  1. About me • Head of R&D & TitansoF • Overall

    system architecture • InnovaJon • Interests • Distributed System, FP • ⚽,
  2. “Rolling updates allow Deployments' update to take place with zero

    downtime by incrementally updating Pods instances with new ones.” https://kubernetes.io/docs/tutorials/kubernetes-basics/update/update-intro/
  3. Pod Lifecycle Pending The Pod has been accepted by the

    Kubernetes system, but one or more of the Container images has not been created. This includes time before being scheduled as well as time spent downloading images over the network, which could take a while. Running The Pod has been bound to a node, and all the Containers have been created. At least one Container is still running or is in the process of starting or restarting. Succeeded All Containers in the Pod have terminated in success and will not be restarted. Failed All Containers in the Pod have terminated, and at least one Container has terminated in failure. That is, the Container either exited with non-zero status or was terminated by the system. Unknown For some reason, the state of the Pod could not be obtained, typically due to an error in communicating with the host of the Pod. https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/
  4. Pod Lifecycle Running The Pod has been bound to a

    node, and all the Containers have been created. At least one Container is still running or is in the process of starting or restarting.