Kubernetes Introduction

Ian Adera
2 min readAug 31, 2021

Kubernetes is an open-source platform designed to automate deploy, scale, and operate application containers. Kubernetes was developed by google who uses Kubernetes to manage over 2 billion container deployment a week. You can use Docker containers to develop and build an application, and then use Kubernetes to run these applications on your infrastructure. The increase of microservices within a large organization would require multiple containers to manage. Due to this problem, Kubernetes was introduced to solve this problem. Kubernetes would facilitate Orchestration features such as:

  • Provision hosts
  • Instantiate containers on a host
  • Restart failing containers
  • Expose containers as a service outside the cluster
  • Scale cluster up or down

“Kubernetes is an open-source project that enables software teams of all sizes, from a small startup to a Fortune 100 company, to automate deploying, scaling, and managing applications on a group or cluster of server machines” — Joe Beda

Kubernetes Features

Multi-Host Container Scheduling

These are handled by the Kube-scheduler. Kube-scheduler assigns containers also known as pods in Kubernetes to a node at runtime. It checks for resources. quality of service, policies, and user specifications before scheduling.

Scalability and Availability

Kubernetes master can be deployed in a highly available configuration. Kubernetes also supports Multi-region deployment us well.

Scalability

  • Supports up to 5000 node clusters
  • 150,000 pods(containers)
  • Maximum of 100 pods per node.
  • Pods can be horizontally be scaled via API

What allows Kubernetes to scale?

Registration

- Seamless nodes register themselves with master

Service Discovery

-Automatic detection of service and endpoints via DNS environment variables

Flexibility and Modularization

Kubernetes has a plug-and-play architecture that allows you to extend it when you need to. The specific add-ons from network drivers, services discovery, container runtime, visualization, and command.

Persistent Storage

This is a popular and important feature when working with containers. Pods can use persistent volume store data. The data is retained across pod restarts and crashes

Application Upgrades and Downgrades

Kubernetes has worked on upgrades that roll new supports and Downgrade that rollback support.

Maintenance

When it comes to maintenance Kubernetes supports backward compatibility. All APIs are versioned.

Logging and Monitoring

Application monitoring or health checks are built-in such as TCP, HTTP, or container execution health check supported out of the box.

Node health check gives the status of nodes by monitoring failures by node controller.

Kubernetes status can be monitored through addons such as HeapstercAdvisor and Prometheus.

Secrets Management

Sensitive data is the first-class citizen in Kubernetes. Secrets are mounted as data volumes or environment variables. There are specified to a single namespace and are not shared across all applications.

Community

Kubernetes has the strongest open source communities. It is governed by the Cloud Native Computing Foundation also know as the CNCF. Kuberenest has vast documentation that is comprehensive.

--

--