Automate Application infrastructure — Kubernetes K8s
What is Kubernetes?
Open-source project by Google in 2014
Kubernetes, also known as K8s, is a tool for automated management of containerized applications, which also known as a container orchestration tool.
What is the benefit of using Kubernetes?
Automate your application infrastructure and make it easy to manage.
- Zero downtime deployments
- Provide facilities to implement CD practice
- Support auto scaling
- Redundancy and failover builin
What is a Container?
Containers wrap software in independent, portable packages, making it easy to ship and run the software in different environments.
In order to run the containerized application, there is the container runtime and Docker is one of the popular container runtime.
Why it is related to Microservices?
Microservices are small, independent services that work together to form a whole application.
Implementing microservices means deploying, scaling, and managing a lot of individual components. Kubernetes is a great tool for accomplishing all of this.
Important Kubernetes objects
Pod
- Group of one or more containers with shared network/storage and a spec for how to run.
Replica Set
- Ensures that a specified number of pod replicas are running at any given time.
Deployment
- Describes a desired
state
and a deployment controller ensures that the state is maintained.
Service
- Defines a logical set of pods and a policy by which to access them
Storage Class
- Provides a way to describe a “class” of storage. Represents a persistent volume
Persistent Volume Claim
- Abstractions of persistent volumes. A persistent volume is a piece of storage in the cluster.
Resource
Sample Microservice Application
https://github.com/instana/robot-shop
https://www.instana.com/blog/stans-robot-shop-sample-microservice-application/
- A sample microservice application you can use as a sandbox to test and learn containerized application orchestration and monitoring techniques
Reference :
[1] https://www.docker.com/resources/what-container
[3] Linux academy
[4] Kubernetes and Docker swarm https://phoenixnap.com/blog/kubernetes-vs-docker-swarm#:~:text=Docker%20Swarm%20can%20deploy%20containers,times%20for%20scaling%20on%20demand.&text=By%20utilizing%20its%20own%20YAML,be%20used%20to%20define%20containers.