lectures.alex.balgavy.eu

Lecture notes from university.
git clone git://git.alex.balgavy.eu/lectures.alex.balgavy.eu.git
Log | Files | Refs | Submodules

kubernetes-architecture.md (1408B)


      1 +++
      2 title = 'Kubernetes architecture'
      3 +++
      4 ## Kubernetes architecture
      5 Control plane
      6 - 1-3+ master nodes: do not run user workloads directly, but manage the cluster
      7 - kube-apiserver: exposes Kubernetes API
      8 - etcd: storage of key-value pairs for Kubernetes config
      9 - kube-scheduler: selects node on which to run new pods
     10 - kube-controller-manager: runs controller processes (Node, Replication, Endpoints, Service Account & Token controllers)
     11 - cloud controller manager: connects cluster to cloud provider's API
     12 
     13 Worker nodes
     14 - node/worker/minion: executes user workloads
     15 - kubelet: ensures that pods are running in node as declared by their specs
     16 - kube-proxy: network proxy, maintains network rules on nodes
     17 - pods: groups of containers that share storage/net resources
     18 
     19 You interact with Kubernetes using `kubectl`.
     20 Kubectl config is in `~/.kube/config`.
     21 
     22 Nodes:
     23 - runs kubelet agent, kube-prxy pod, and network pod
     24   - allows cluster manage pods that run on node
     25 - network pod: not by default via `kubeadm`, but Calico in `microk8s`
     26 
     27 Namespaces:
     28 - used to create virtual clusters (avoid name conflicts, restrict resource usage, establish quotas, add policies)
     29 - K8s creates objects in `default` namespace
     30 - K8s components run in separate namespace -- `kube-system`
     31 - new namespaces can be created with `kubectl create namespace <name>`
     32 - cannot be nested. persistent volumes and nodes are not in a namespace.