Chad @ KubeCon in Chicago 🐻 Profile picture
Husband and dad πŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘¦β€οΈ | CNCF Ambassador | Kubernetes Engineer @raft_tech | Author https://t.co/laUa9kDYN1 | Community @kubeskills

Nov 8, 2021, 11 tweets

Always wondered how #kubernetes works, but never got time to sit down and actually learn it? πŸ€”

Let's change that today πŸ™Œ πŸ₯³

πŸ§΅πŸ‘‡Here's a 10-tweet Kubernetes crash course for you! 🚒

1/10
Kubernetes is for running containerized apps. Referred to as a cluster..components (control plane and workers) act together to maintain things like storage & networking.

All act together to solve the problem of underutilization and software becoming immutable

2/10
We use #kubernetes because it provides a single, common interface to deploy applications without having to know about the underlying hardware.

Container images can be stored in a central repository and accessed from around the world.

3/10
One of the benefits to #kubernetes is its built-in high availability. In Deployments, you declare a number of replicas for your app, making it highly available.

Also, immutability means that components of your Kubernetes cluster can be killed and be re-spawned automatically

4/10
#kubernetes allows the app storage to be decoupled through the persistent volume resource, so a container can be killed and re-spawned and the volume will follow it.

It can do this via Persistent Volume Claim, in order to claim the storage you need for your app.

5/10
You declare (vs. imperative) specifications (created in YAML format) for how that application should run.

You submit that spec to the Kubernetes API and the replicaSet will make it so, ensuring that your application will always run as you specified in the deployment spec.

6/10
A Deployment is a #kubernetes resource that maintains your app through its lifecycle...allows new version rollouts.

It will not only ensure that your application is running according to the deployment spec but also handles zero-downtime upgrades to your application.

7/10
Updating the container image triggers a rollout. This rollout happens gradually, allowing you to roll back or pause If necessary.

Detect whether the app needs to be restarted by attaching a liveness check. Attach readiness check to see if the app is ready to serve traffic.

8/10
Your app in #kubernetes is actually running inside pod(s). A pod contains one or many containers running in a Linux namespace (shared processes on a Linux node).

The Deployment creates these pods for you. Pods (the payload) run on the worker nodes in a Kubernetes cluster.

9/10
Expose your app using a service (ClusterIP, NodePort, LoadBalancer).

A service gives pods their own IP address and DNS name. It will load balance the traffic and keep track of where pods are as they move around to different nodes.

10/10
You can create an Ingress resource in #Kubernetes in order to specify routing rules based on a URL path or sub-domain (must use an ingress controller) to your ClusterIP service.

Ingress also provides secure communications to your app.

Share this Scrolly Tale with your friends.

A Scrolly Tale is a new way to read Twitter threads with a more visually immersive experience.
Discover more beautiful Scrolly Tales like this.

Keep scrolling