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.