Files
system-design-101/data/guides/what-is-k8s-kubernetes.md
Kamran Ahmed ee4b7305a2 Adds ByteByteGo guides and links (#106)
This PR adds all the guides from [Visual
Guides](https://bytebytego.com/guides/) section on bytebytego to the
repository with proper links.

- [x] Markdown files for guides and categories are placed inside
`data/guides` and `data/categories`
- [x] Guide links in readme are auto-generated using
`scripts/readme.ts`. Everytime you run the script `npm run
update-readme`, it reads the categories and guides from the above
mentioned folders, generate production links for guides and categories
and populate the table of content in the readme. This ensures that any
future guides and categories will automatically get added to the readme.
- [x] Sorting inside the readme matches the actual category and guides
sorting on production
2025-03-31 22:16:44 -07:00

53 lines
2.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "What is Kubernetes (k8s)?"
description: "Learn about Kubernetes, a container orchestration system for deployment."
image: "https://assets.bytebytego.com/diagrams/0245-k8s.png"
createdAt: "2024-03-14"
draft: false
categories:
- devops-cicd
tags:
- "Kubernetes"
- "Containers"
---
[![k8s](https://assets.bytebytego.com/diagrams/0245-k8s.png)](https://assets.bytebytego.com/diagrams/0245-k8s.png)
k8s is a container orchestration system. It is used for container deployment and management. Its design is greatly impacted by Googles internal system Borg.
A k8s cluster consists of a set of worker machines, called nodes, that run containerized applications. Every cluster has at least one worker node. \[1]
The worker node(s) host the Pods that are the components of the application workload. The control plane manages the worker nodes and the Pods in the cluster. In production environments, the control plane usually runs across multiple computers and a cluster usually runs multiple nodes, providing fault tolerance and high availability. \[1]
## Control Plane Components
* **API Server**
The API server talks to all the components in the k8s cluster. All the operations on pods are executed by talking to the API server.
* **Scheduler**
The scheduler watches the workloads on pods and assigns loads on newly created pods.
* **Controller Manager**
The controller manager runs the controllers, including Node Controller, Job Controller, EndpointSlice Controller, and ServiceAccount Controller.
* **etcd**
etcd is a key-value store used as Kubernetes' backing store for all cluster data.
## Nodes
* **Pods**
A pod is a group of containers and is the smallest unit that k8s administers. Pods have a single IP address applied to every container within the pod.
* **Kubelet**
An agent that runs on each node in the cluster. It ensures containers are running in a Pod. \[1]
* **Kube Proxy**
kube-proxy is a network proxy that runs on each node in your cluster. It routes traffic coming into a node from the service. It forwards requests for work to the correct containers.