Back

kubernetes (K8S)

Kubernetes, commonly abbreviated as K8s, is an open-source platform designed to automate deploying, scaling, and operating application containers. It was originally developed by Google and is now maintained by the Cloud Native Computing Foundation. Kubernetes works by grouping containers that make up an application into logical units for easy management and discovery[2][4].


Key Features of Kubernetes:

  1. Container Orchestration: Kubernetes manages the lifecycle of containers and services, ensuring that the desired state of the application is maintained[1].
  2. Declarative Configuration: Kubernetes allows users to declare their desired state for the containers, and the system works to maintain that state[1].
  3. Scalability: It can scale applications up or down automatically based on CPU usage or other specified criteria[1].
  4. Load Balancing: Kubernetes can distribute network traffic so that the deployment is stable[1].
  5. Self-healing: It can restart containers that fail, replace and reschedule containers when nodes die, and kill containers that don’t respond to user-defined health checks[1].
  6. Service Discovery and Load Balancing: Kubernetes can expose a container using the DNS name or using their own IP address[1].
  7. Automated Rollouts and Rollbacks: Kubernetes can roll out changes to the application or its configuration while monitoring application health to ensure it doesn’t kill all instances at the same time[1].
  8. Secret and Configuration Management: Kubernetes can manage sensitive information such as passwords, OAuth tokens, and SSH keys, allowing you to update secrets and application configuration without rebuilding your container images[1].


What Kubernetes Is Not:

  1. Kubernetes is not a traditional all-inclusive PaaS (Platform as a Service) system. It operates at the container level rather than at the hardware level, providing some features common to PaaS offerings, such as deployment and scaling, but it preserves user choice and flexibility[1].
  2. It does not limit the types of applications supported and aims to support a diverse variety of workloads, including stateless, stateful, and data-processing workloads[1].
  3. Kubernetes is not a mere orchestration system. It eliminates the need for orchestration by combining a set of independent, composable control processes that continuously drive the current state towards the provided desired state[1].


Components of a Kubernetes Cluster:

  1. Pods: The smallest deployable units created and managed by Kubernetes, which can contain one or more containers[3].
  2. Nodes: Worker machines within a Kubernetes cluster that run the containers and workloads[3].
  3. Control Plane: The set of processes that manage Kubernetes nodes and pods[3].
  4. kubectl: A command-line interface (CLI) for managing operations on Kubernetes clusters[3].


Kubernetes has become a key tool in modern software deployment strategies, particularly in the context of microservices architectures and cloud-native applications. Its ability to manage complex, containerized applications at scale has led to widespread adoption across various industries[2][4][5][6].


Citations:

[1] https://kubernetes.io/docs/concepts/overview/

[2] https://kubernetes.io

[3] https://enterprisersproject.com/article/2017/10/how-explain-kubernetes-plain-english

[4] https://en.wikipedia.org/wiki/Kubernetes

[5] https://cloud.google.com/learn/what-is-kubernetes

[6] https://www.redhat.com/en/topics/containers/what-is-kubernetes

[7] https://www.techtarget.com/searchitoperations/definition/Google-Kubernetes

[8] https://www.ibm.com/topics/kubernetes

Share: