Files
2024-06-07 22:37:18 -04:00

1.5 KiB

My notes from https://www.youtube.com/watch?v=s_o8dwzRlu4 and other videos

What is kubernetes

  • an open source container orchestration tool
  • helps you manage apps that are made of 100s or 1000s of containers in different dev environments (cloud, local, etc)

Container Orchestration Tool

  • manages many containers
  • offers high availability (little to no downtime)
  • offers scalability
  • offers disaster recovery (backup and restore)

Kubernetes Cluster Structure

at least 1 Master Node

has:

  • API Server (the entrypoint for the kubernetes cluster), this is what the kubernetes clients (UI, API, CLI, etc) will talk to
  • Controller Manager
    • keeps track of the cluster (i.e. a container has died, restart it)
  • Scheduler
    • decides on which node any new container should be scheduled
    • it does this based on workload, server resources on each node, etc
  • etcd
    • key/value storage for the current state of the cluster
    • holds the current config data, status data of each node/the node's container, etc
    • snapshots of this etcd are used for RECOVERY

connected to it, there are many smaller

Worker Nodes

all of which have:

  • a kublet (kubernetes process that talks to other kublets and master node) running on it
  • docker containers (which do the work)

Virtual Network

  • spans all the nodes in the cluster
  • enables the nodes to talk to each other

Note: in most prod environments, it's recommended to have more than one master node so that if one of them fails, the process can continue running