How do I perform a zero-downtime update?

Rolling update deployment strategies instead of updating all instances at once updates are incrementally applied to a small number of instances at time, it ensue in case of failure only selected instances will be affected
This strategy typically involves the following steps:
1>Incremental Updates: The updates are applied to a small number of instances or nodes at a time, ensuring that only a portion of the system is affected at any given moment.
2>Health Checks: Before proceeding with each update, health checks are performed to ensure that the instances being updated are healthy and capable of handling the new version of the software.
3>Load Balancing: Traffic is gradually shifted away from the instances being updated to the unaffected ones, typically using load balancers or routing mechanisms, to ensure that users experience minimal disruption.

What deployment strategies does Kubernetes support?

Rolling Update, Recreate, Blue/Green Deployment, Canary Deployment & Shadow/Dark Deployment.

How do deployments,replica sets and pods relate?

Deployment: a grouping of functionally identical pods that can be launched and managed together. These duplicate pods allow you to achieve the resiliency and scalability that Kubernetes is designed to foster: traffic may be balanced between them as needed, and if a pod goes down, it can be immediately replaced.
The Deployment Object draws upon the Pod as well as another important abstraction: the ReplicaSet. This defines the number of duplicate Pods the system should maintain.
It is perfectly possible to write a manifest for a ReplicaSet, just as it is possible to write a manifest for a Pod—but the beauty of the Deployment is that it joins those two objects so you can create, delete, update, replicate, and otherwise manage groupings of Pods through a single interface.

What is the difference between a pod and a container?

Containers are a lightweight, standalone executable package that includes everything needed to run a piece of software, while pods are a group of one or more containers that share resources and are scheduled together on the same host.

What is a Kubernetes deployment?

Kubernetes Deployment is a Kubernetes object that defines a desired state for a set of Pods. A Pod is the smallest deployable unit in Kubernetes that can contain one or more containers. A Deployment manages a set of identical Pod replicas, ensuring that the desired number of replicas are running at all times.