Kubernetes, also known as K8s, is an open source container orchestration platform that automates many of the manual processes involved when deploying and managing containerized applications.
After you have learnt Docker 🐳 you can start creating very complex applications with tens or even hundreds of containers, with containers talking to each other and interacting in some way.
And these containers would need to be deployed across multiple servers in a distributed way.
So you can imagine the overhead and effort you would have, if you had to manage these hundreds of containers manually without automation. 🤦♀️
Every time containers crash or the communication between them isn’t working across multiple servers, you would have to interfere and fix the problem.
So it would be great to have a tool that will automatically fix such issues and recover the application state. That tool is a container orchestration tool. ⭐️
And Kubernetes is one of the most popular container orchestration tools out there.
In this course, we’ll go through K8s use cases, you will learn how K8s actually works and how you can use it by showcasing all the main components. In addition we will go through a practical use case, where we will deploy a simple application setup in K8s cluster locally to get your first hands-on experience 👩🏻💻 with K8s and feel more confident about the tool.
We will also go into more advanced and important concepts like organizing your components using Namespaces, how to make your App available from outside using K8s Ingress or how to persist data in K8s using Volumes.
The full course is available here: 🤓
- What problems does Kubernetes solve?
- What features do container orchestration tools offer?
K8s has tons of components, but most of the time you are only working with a handful of them. This part shows you step by step how each component helps you to deploy your application and what the role of each of those components is.
- Node and Pod
- Service and Ingress
- ConfigMap and Secret
- Deployment and StatefulSet
In this part you will learn about Master and Worker Nodes, which make up the Kubernetes cluster.
- Worker Nodes
- Master Nodes
- Api Server
- Controller Manager
- etcd - the cluster brain
- What is Minikube?
- What is kubectl? K8s Command Line Tool
- Install minikube and kubectl
- Create and start a Minikube cluster
- Get status of different components
- Create a pod/deployment
- Layers of abstraction
- Change the pod/deployment
- Debugging pods
- Delete pod/deployment
- CRUD by applying configuration file
In this part you'll learn the syntax and contents of K8s configuration file , which is the main tool for creating and configuring components in a Kubernetes cluster.
- 3 parts of a Kubernetes config file (metadata, specification, status)
- format of configuration file
- blueprint for pods (template)
- connecting services to deployments and pods (label & selector & port)
Instead of creating each component separate without context, this part goes through a complete application setup using several Kubernetes components. It's a hands-on, practical tutorial of using the different Kubernetes Components together, which will give you a big picture.
Overview of the demo:
- Create MongoDB Pod
- Create MongoExpress Pod
- Create ConfigMap for DB URL
- Create Secret for DB Credentials
- Create MongoDB Internal Service to connect to the Pod
- Deployment Service and Config Map
- Create MongoExpress External Service to connect from the Browser
- What is a Namespace?
- 4 Default Namespaces
- Create a Namespace
- Why to use Namespaces? 4 Use Cases
- Characteristics of Namespaces
- Create Components in Namespaces
- Change Active Namespace
- What is Ingress? External Service vs. Ingress
- Example YAML Config Files for External Service and Ingress
- Internal Service Configuration for Ingress
- How to configure Ingress in your cluster?
- What is Ingress Controller?
- Environment on which your cluster is running (Cloud provider or bare metal)
- Demo: Configure Ingress in Minikube
- Ingress Default Backend
- Routing Use Cases
- Configuring TLS Certificate
- Package Manager and Helm Charts
- Templating Engine
- Use Cases for Helm
- Helm Chart Structure
- Values injection into template files
- Release Management / Tiller (Helm Version 2!)
- The need for persistent storage & storage requirements
- Persistent Volume (PV)
- Local vs Remote Volume Types
- Who creates the PV and when?
- Persistent Volume Claim (PVC)
- Levels of volume abstraction
- What is StatefulSet? Difference of stateless and stateful applications
- Deployment of stateful and stateless apps
- Deployment vs StatefulSet
- Pod Identity
- Scaling database applications: Master and Worker Pods
- Pod state, Pod Identifier
- 2 Pod endpoints
- What is a Service in K8s and when we need it?
- ClusterIP Services
- Service Communication
- Multi-Port Services
- Headless Services
- NodePort Services
- LoadBalancer Services
► Get 30% off - with this code: UDEMY_NANA_NOV2020: Udemy course here
► Kubernetes 101: Compact and easy-to-read ebook bundle 🚀
It's a handy way to quickly look something up or refresh your knowledge at work and use it as your cheatsheet 😎
Like, share and follow me 😍 for more content: