1.What is Container Orchestration ?
- Orchestration is not a tools it’s a method or approach used in the management and coordination of complex systems, processes, or services. Container Orchestration is all about managing the life cycles of containers, especially in large, dynamic environments.
2.Why we used Container Orchestration?
- Provisioning and deployment of containers.
- AutoScaling :- Scaling up or removing containers to spread application load evenly. (vertical and Horizontal)
- Platform Independent :- Movement of containers from one host to another if there is a shortage of resources.
- Load Balancing of service discovery between containers.
- Health monitoring of containers and hosts.
Batch execution :- one time, sequential, Parallels.
Fault Tolerance :- node and pods failure.
3.Container Orchestration Solutions which are available, some of the popular ones include:
- Kubernetes.
- Docker Swarm.
- Apache Mesos.
- Azure Kubernetes service (AKS as PAAS Platform as a services).
- Elastic Kubernetes service (AWS EKS as PAAS Platform as a services).
- Google Kubernetes Engine (GKE).
- Dokku.
- opensift.
4. What is Kubernetes (K8s) ?
i). Kubernetes is an open-source container orchestration platform developed by Google and now maintained by the CNCF (Cloud Native Computing Foundation).
Management Type |
What It
Means |
1.
Deployment Management |
Containers
ko create, update, aur delete karta hai. Easily
new app versions deploy karo. |
2.
Scaling (Auto/Manual) |
Load
zyada ho to containers increase kare, kam ho to reduce kare (Auto-scaling). |
3. Self-Healing |
Agar
container crash ho jaye, to khud se restart kar deta hai. |
4. Load
Balancing |
Users ke
traffic ko multiple containers me divide karta hai. |
5.
Rollouts & Rollbacks |
New
version roll-out karna ya old version me wapas jaana, bina downtime ke. |
6.
Service Discovery & Networking |
Containers
ka IP, DNS, aur communication manage karta hai. |
7.
Storage Orchestration(pv, pvc) |
Persistent
storage attach karta hai containers ke sath (like EBS, NFS). |
8.
Configuration Management |
Secrets,
config files, environment variables securely handle karta hai. |
9.
Monitoring & Logging |
Container
ke health aur logs monitor karta hai (via tools like Prometheus, Grafana). |
10.
Resource Management |
CPU,
Memory, etc. ka limit aur request set karta hai for containers. |
5.What is Container?
- Container separately provide like a isolated workspace we can deployed application and dependencies.
- Containers isolate the application from accessing the resources as these are VMs.
- Container is a lightweight, standalone, executable package of software that includes everything needed to run an application: code, runtime, system tools, system libraries.
5.1 There are many plugin for k8s :-
2.CRI :- Container Runtime Interface
3.CNI :- Container Network Interface
4.CSI :- Container Storage Interface
5.SMI :- Service Mesh Interface
6.CPI :- Cloud Provider Interface
a) What is Open Container Initiative OCI ?
OCI is a specification for container runtimes and image
formats. It focuses on defining standards for container formats and runtime
specifications to ensure interoperability across different container runtimes.
OCI provides a set of specifications that describe how
container images should be structured and how container runtimes should execute
and manage containers.
OCI specifications consist of two main components:
Image Specification: Describes the format and
contents of a container image. It defines the structure of the filesystem,
configuration, and metadata within an image.
Runtime Specification: Describes the configuration
and execution of a container. It specifies how a container runtime should
create and run a container based on the image.
OCI provides a set of specifications that describe how container images should be structured and how container runtimes should execute and manage containers.
OCI specifications consist of two main components:
Image Specification: Describes the format and contents of a container image. It defines the structure of the filesystem, configuration, and metadata within an image.
Runtime Specification: Describes the configuration and execution of a container. It specifies how a container runtime should create and run a container based on the image.
b)What is Container Runtime Interface CRI ?
The Container Runtime Interface (CRI) is a specification and
set of APIs (Application Programming Interfaces) that define the interface
between containerD and Kubernetes.
Kubelet communicates with the container runtime over Unix
sockets using the gRPC framework, where kubelet acts as a client and the CRI containerD
as the server.
1.Docker (supported OCI)
2.containerd-CRI (compatible OCI and CRI)
3.rocket(RKT) (compatible OCI and CRI)
4.podman (compatible OCI and CRI)
5.CRI-O (compatible OCI and CRI)
6.Runc (compatible OCI and CRI)
7.Native (compatible OCI and CRI)
8.Frakti (compatible OCI and CRI)
9.Railcar (compatible OCI and CRI)
10.Runv (compatible OCI and CRI)
c) What is Container Network Interface CNI ?
The main purpose of CNI is to allow different networking plugins to be used with container runtimes. This allows Kubernetes to be flexible and work with different networking solutions, such as Calico, Flannel, and Weave Net. CNI plugins are responsible for configuring network interfaces in pods, such as setting IP addresses, configuring routing, and managing network security policies.
d) What is Container Storage Interface CSI ?
The Container Storage Interface is a community-based project
for developing a standardized API enabling communication between container
orchestration (CO) platforms and storage plugins. In theory, a standardized
communication protocol allows storage providers to write plugins more easily,
to just one specification.
E) SMI :- Service Mesh Interface
Traffic policy — apply policies like identity and
transport encryption across services
Traffic telemetry — capture key metrics like error
rate and latency between services
Traffic management — shift traffic between different
services
See some of SMI implementations below:
Istio addon
Istio is an open source service mesh that layers
transparently onto existing distributed applications. It provides a uniform and
more efficient way to secure, connect, and monitor services.
It is the path to load balancing, service-to-service
authentication, and monitoring — with few or no service code changes.
Istio addresses the challenges developers and operators face with a distributed or microservices architecture.
console for Istio, the service mesh platform. It provides a graphical user
interface (GUI) to visualize, monitor, and manage the traffic flows within a
microservices application that is managed by Istio.
iii) Prometheus :- Prometheus is a monitoring and alerting toolkit designed for reliability and scalability.
F) CPI :- Cloud Provider Interface
CPI is a
specification on how to implement a Kubernetes cluster. It decouples
intelligence of underlying cloud infrastructure features from the core
Kubernetes.
See some of
CPI implementations below:
AWS
Azure
GCP
No comments:
Post a Comment