For more information see: https://kubernetes.io/docs/concepts/overview/components/.
These components run typical on a seperate machine, even if they don't have to. They are responsible for:
- Global decisions about the cluster (e.g. scheduling)
- In AKS high available managed server
- Github: kube-apiserver
- Kubernetes API
- Frontend for the Kubernetes Control Plane
- Receives commands from
kubectl
tool - Exposed by AKS (see Azure Portal or
kubectl cluster-info
)
- Github: etcd
- Key-Value Store for all cluster data
- Github: kube-scheduler
- Starts new pods as containers on nodes
- Takes several metrics into consideration, like resources, etc.
- Github: kube-controller-manager
- Runs controllers in a single process
- Controllers:
- Node Controller: Handles Node Shutdowns
- Replication Controller: Ensure correct number of pods
- Endpoints Controller: Populates endpoints (pods, services)
- Service Account & Token Controllers
- Github: cloud-controller-manager
- Interaction with the underlying cloud providers
- Controllers
- Node: Lifecycle management of cloud nodes
- Route: Routing in the Cloud Infrastructure
- Service: Handles Load Balancers
- Volume: Mounting and interacting with Cloud Storages
- Github: https://github.com/kubernetes/kubernetes/tree/master/cmd/kubectl
- Manages Pods on nodes
- Also Virtual Kubelet: "Kubernetes API on top, programmable bac": Github virtual-kubelet
Used for connecting AKS to ACI (e.g. burst traffic spikes).
Runs on the nodes, takes the traffic e.g. from Load-Balancer and sends it to the pods round robin.
- Github: kube-proxy
- Networking Abstraction
- Kubernetes service abstraction
- Connection-Forwarding
- Runtime to run containers, e.g. docker
- Integrated into kubelet
- Collects CPU, memory, filesystem, and network usage statistics of containers and exposes them to kubelet
To further enhance functionality there are several addons that can be included:
- DNS
- DNS Server in the cluster
- Web UI (Dashboard)
- Simple Web UI for managing kubernetes
- Container Resource Monitoring
- Metric collection and monitoring
- Cluster-level Logging
- Store logs in a central log store