1. What is Kubernetes
Kubernetes (also known as k8s or “Kube”) is an open-source container orchestration platform that automates many of the manual processes involved in deploying, managing, and scaling containerized applications. ("From Wiki").
2. Container Overview
What are containers?
Containers are completely isolated environments. As in they can have their own process or services, their own networking interface, and their own mounts just like virtual machines. Except they all share the same operating system Kernel.
What difference between Container and Virtual Machine?
Why do we need containers?
- Compatibility/dependency: Matrix on the hell
- Long setup time:
- Difference Dev/Test/Prod/ Environments:
Image vs Container
Image: package template, use to create a container.
3. Container Orchestration
Orchestration container is used to orchestrate the deployment and management of hundreds and thousands of containers in a clustered environment.
It automatically scales up/down( increased, or decreased containers) based on the load.
4. Kubernetes Architecture
Node:
- A node is a machine, physical or virtual which is Kubernetes installed. A node is a worker machine.
Clusters:
- is a set of nodes together, it ensures that your application is alive. If one node fails, the application is accessible from other nodes.
- Multiple nodes help to share the load as well.
Master (others are slaves):
- It is responsible for managing the cluster. Contain the information of the cluster stored. When the node fails, it will move to another worker node.
- The master watches all the nodes in the cluster and is responsible for the actual orchestration container on the worker node.
Minions:
Components:
API Server: it is a front end of Kubernetes: command line, interface… (run on master)
etcd: key-value store, to store all the data used to manage the cluster
Controllers: controllers are the brain behind orchestration, responsible for notice, and response when nodes, container, or endpoint goes down, The controller makes the decision to bring up new containers in such cases.
Scheduler: distributing work or container across multiple nodes, It looks for newly containers and assigns them to nodes.
Container runtime: software is used to run applications in containers (docker)
Kubelet: is the agent that runs on each node in the cluster. The agent is responsible for making sure the containers are running on the node expected.
5. minikube
Install and set up the kubectl tool: -
https://kubernetes.io/docs/tasks/tools/
Install Minikube: -
https://minikube.sigs.k8s.io/docs/start/
Minikube Tutorial: -
https://kubernetes.io/docs/tutorials/hello-minikube/
Để lại bình luận cho trang này