Google in 2015. • Kubernetes development and design is heavily influenced by Google’s Borg Software. • Borg is the software used inside Google which powers all the popular Google softwares which we use today like search, maps, gmail, etc. • Joe Beda, Brendan Burns, Tim Hockin, Brian Grunt, Craig McLuckie are the core developers of Kubernetes.
of software that packages up code and all its dependencies so the application runs quickly and reliably from one computing environment to another. Example - docker, rocket, cri-o, etc Container Orchestrator - A software that manages the lifecycle of all containers is called container orchestrator. Example - docker swarm, kubernetes, mesos, Amazon ECS, etc Microservices - It is an approach to developing a large software as a suite of small services.
in kubernetes. It consists of one or more containers. Each pod is assigned a unique IP address. ReplicaSet - It tells kubernetes how many instances(replicas) of the pod should be running at any point of time. Deployment - It is a resource which contains pod definition and the number of replicas of the pod required. Service - It is a resource that provides access to the pod in kubernetes.In real applications we define a deployment and service for each application/service.
is used to group resources into different categories in kubernetes. Labels - They are the names given to the resources in kubernetes useful for filtering them based on labels.
• The job of the master node is to just manage worker nodes. It does not run any application. • Worker Nodes actually run the actual applications and do the real work. • Master Node consists of apiserver, etcd, scheduler, controller • Worker Node consists of kubelet, container runtime(docker), pods
main component that exposes kubernetes api. • etcd - It is a key value database for storing data in kubernetes. • Scheduler - It watches newly created pods that have no node assigned, and selects a node for them to run on based on some rules. • Controller - It is responsible for ensuring the pods are always running in kubernetes.
runs on each node in the cluster. It makes sure that containers are running in a pod. • kubeProxy - Provides networking for pods and services • Container Runtime - Component used to run containers. Generally docker is used for this.
• What happens if a worker node goes down? • Can I add or remove worker nodes to scale up/down the cluster? • In an enterprise we have multiple environments like dev, test prod. How is that managed in kubernetes?
json. • Yaml is best suited for storing configuration where as json is best suited for data serialization. • Yaml building blocks ◦ Key, value pairs ◦ List or Array ◦ Dictionary or Map
get pods • kubectl describe pod <pod-name> • kubectl apply -f sample-pod.yaml • kubectl delete pod <pod-name> Other resource types that can be used in commands are rs or replicaset, deployment, svc or service.
set of pods together. • It is the interface using which a pod is accessible to the consumers of the pod. • It makes the pods of an application accessible to other pods in the same node or other nodes or clients of the application • Default service type is ClusterIP.
pod to be accessible outside the cluster. • Service has a port defined for it. It maps a port of the worker node with a port of the pod • The port of the node is called nodePort • The port of the pod is called targetPort
large number of microservices. As a developer what should i do deploy them in kubernetes? • Can I achieve CI/CD of my applications with kubernetes? • Are there any tools which validate syntax, provide content assist of yaml files? • What are helm charts?
kube-public. • Resources in a namespace can talk to each other using resource name. • Namespace can be created using yaml file or imperative command. • Resources have namespace attribute in metadata section as well.
(GKE) • Azure Kubernetes Service ( AKS) • Amazon Elastic Kubernetes Service ( EKS ) • Almost every cloud provider has their own flavour of kubernetes as a service
is a software which reconciles the desired state of the system with the actual state. • Kubernetes is the distributed operating system. • Kubernetes is platforms platform.