application highly available, scalable, portable, and deployable in small modules independently lead to the birth of Kubernetes Kubernetes is a production-grade open-source container orchestration tool developed by Google to help you manage the containerized/dockerized applications supporting multiple deployment environments like On-premise, cloud, or virtual machines.
system from application code and dependencies • Isolates individual processes • Popular implementation include docker Shared Libraries Operating System Virtual Machine Container Code and libraries Container Code and libraries Container Code and libraries
Loose coupling Between application and operating system layers Workload Migration Simplified between on-premises and cloud environment Agility Agile development and operations
scaling, and operations for container clusters • OpenSource, based on Google’s experience over 10+ years • Built for a multi-cloud world ◦ Public, private, hybrid
run many environments, across cloud providers ◦ Implementation is open and modular • Rolling updates ◦ You can upgrade applications without downtime • Persistence storage ◦ Details of how storage is provided are abstracted from how it is consumed
a cluster in multiple zones • Load balancing ◦ External IP address routes traffic to correct port • Autoscalling ◦ Automatically adapt to change in workload
management and orchestration system for running containers ◦ Based on Kubernetes ◦ Uses compute Engine Instances and resources • Uses declarative syntax to manage applications ◦ Declare desired application configuration, Kubernetes Engine Implementation
Engine Standard App Engine Flexible Language supports Any Java, Python, Go & PHP Any Service model Hybrid PaaS PaaS Primary use case Container-based workloads Web and mobile applications Web and mobile applications, container- based workloads
Pods: Small chunk of application Kube-Proxy: Runs network in each node Container Runtime: Microservice single pod installed in worker node Kubelets: Interact with Node and worker thread - Maintaining a set of pods, which are composed of one or more containers, on a local system. - For registering a node with a Kubernetes cluster, sending events and pod status, and reporting resource utilization. - Kublets takes PodSpecs to check the pods are healthy or not.
that they are always up and running? • How does the K8s cluster know which pods should be scheduled and which one should be dropped or restarted? • How does the k8s cluster know the resource level requirements of each container app?
worker node goes down • Replication controller: It ensures that the request to maintain the correct replica count of any pod deployment is always taken care • Endpoints controller: Populates the Endpoints object viz. Joins, Services & Pods • Service Account & Token controllers: Create default accounts and API access tokens for new namespaces created in the worker node.