Kubernetes Overview for MariaDB Users
Kubernetes, or K8s, is a software to orchestrate containers. It is released under the terms of an open source license, Apache License 2.0.
Kubernetes was originally developed by Google. Currently it is maintained by the Cloud Native Computing Foundation (CNCF), with the status of Graduated Project.
Contents
Architecture
Kubernetes runs in a cluster. A Kubernetes cluster consists of the following components:
- Nodes run containers with the servers needed by out applications.
- Controllersconstantly check the cluster nodes current state, and compares it with the desired state.
- A Control Plane is a set of different components that store the cluster desired state and take decisions about the nodes. The Control Plane provides an API that is used by the controllers.
Nodes
A node is a system that is responsible to run one or more pods. A pod is a set of containers that run Kubernetes workload or part of it. Usually identical pods run on different nodes for fault tolerance.
For more details, see Nodes in the Kubernetes documentation.
Every node must necessarily have the following components:
- kubelet
- kube-proxy
- A container runtime
Other components exist but are optional.
kubelet
kubelet has a set of PodSpecs, which describe the desired state of pods. It checks that the current state of the pods matches the desired state. It especially takes care that containers don't crash.
kube-proxy
Container Runtime
Controllers
Control Planes
Ansible Resources and References
- Kubernetes website
- Kubernetes on Wikipedia
- Kubernetes organization on GitHub
- Forum
- (video) MariaDB database clusters on Kubernetes, by Pengfei Ma, at MariaDB Server Fest 2020
Content initially contributed by Vettabase Ltd.