DEV Community

Cover image for Getting Started with Kubernetes
Deepak Porwal
Deepak Porwal

Posted on • Updated on

Getting Started with Kubernetes

Orchestration

Container orchestration is all about managing the life cycles of containers, especially in large, dynamic environments.

Container Orchestration can be used to perform a lot of tasks, some of them includes:

  • Provisioning and deployment of containers
  • Scaling up or removing containers to spread application load evenly
  • 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

There are many container orchestration solutions which are available, some of the popular ones include:

  • Docker Swarm
  • Kubernetes
  • Apache Mesos
  • Elastic Container Service (AWS ECS)

There are also various container orchestration platforms available like EKS.

Introduction to Kubernetes

Kubernetes (K8s) is and open-Source container Orchestration engine developed by Google.

It is originally designed by Google, and is now maintained by the Cloud Native Computing Foundation.

K8s Architecture

Installation Options for K8s

Installation Aspects

Things to configure while working with Kubernetes.

Sr No Things to Install Description
1 kubectl CLI for running user commands against cluster
2 Kubernetes Master Kubernetes Cluster by itself
3 Worker Node Agents Kubernetes Node Agent

Understanding Installation Methods

There are multiple ways to get started with fully functional k8s environment.

  • Use the Managed K8s Service
  • Use Minikube
  • Install & Configure K8s Manually (Hard Way)

Install & Configure K8s Manually(Hard Way)

In this approach you have to install all the components ok K8s Individually

Hard-way

Components to be Configured - Managed Service

You have to just download kubectl and that's it. As rest all the things are taken care by Managed Service. Download CLI and just need to connect with K8s master.

Environment Setup

Components to be Configured - Minikube

Take care of K8s master also the worker node, then we need to configure the kubectl.
It has disadvantage that it provision single node cluster.


Kubernetes API Primitives

Depending on the Operations there are various APIs availble.

eg: /apis , /metrics ,
/api/v1/pods or /api/v1/nodes or /api/v1/services

to explore APIs, run below command and goto: localhost:8080

kubectl proxy --port 8080
Enter fullscreen mode Exit fullscreen mode

Kubernetes POD

A pod is a collection of containers and its storage inside a node of a Kubernetes cluster. It is possible to create a pod with multiple containers inside it. For example, keeping a database container and data container in the same pod.

There are two types of Pods −

  • Single container pod
  • Multi container pod

Single container pod

$ kubectl run <name of pod> --image=<name of the image from registry>
Enter fullscreen mode Exit fullscreen mode

eg:

kubectl run tomcat --image = tomcat:8.0
Enter fullscreen mode Exit fullscreen mode

Multi container pod

Multi container pods are created using yaml mail with the definition of the containers.

apiVersion: v1
kind: Pod
metadata:
   name: Tomcat
spec:
   containers:
   - name: Tomcat
    image: tomcat: 8.0
    ports:
containerPort: 7500
   imagePullPolicy: Always
   -name: Database
   Image: mongoDB
   Ports:
containerPort: 7501
   imagePullPolicy: Always
Enter fullscreen mode Exit fullscreen mode

For more deep on Pods goto: Kubernetes Pods


Kubernetes Objects

Kubernetes Objects are basically a record of intent that you pass on to the Kubernetes Cluster.
Once you create the object, the kubernetes system will constantly work to ensure that object exists.

Commands and Arguments in K8s

In Docker main difference between ENTRYPOINT and CMD is that Override the main command in Dockerfile with the command passing as arguments.

Whereas, in Kubernetes we can override both the ENTRYPOINT and CMD with command and arguments field.

Dockerfile VS K8s Menifest Perspective

Docker Field Name K8s field Name Description
ENTRYPOINT command Command that will run by the container
CMD args Argument passed to the container

Let me show you how command and args work on kubernetes.

commands with description

Reference: Define a Command and Arguments for a Container

References:
Official Documentation
Udemy Course

Credit:
Zeal Vora

Specific Kubernetes setups, coming soon!!!!!!!!!!!!!!!!

Discussion (0)