Kubernetes is an open-source container orchestration system for automating the deployment, scaling, and management of containers.
Originally created by Google and is now maintained by the Cloud Native Computing Foundation (CNCF) as a CNCF project.
Kubernetes is commonly called K8s.
A unique component of Kubernetes is Pods.
A pod is a group of one more container with shared storage, network resources, and other shared settings.
Kubernetes is ideally for micro-services architecture where a company has tens to hundreds of services they need to manage.
A logical grouping of all components withing a cluster.
A named logical grouping of Kubernetes components within a cluster. Used to Isolate different workloads on the same cluster.
A virtual machine or underlying server. There are two types of nodes:
- Control Plane: node manage worker nodes.
- Worket nodes: is where your application or workloads run.
The smallest unit in K8s. It is an abstraction over a container. Generally defines an applicatoin workload.
A static IP address and DNS name for a set of pods (persists an address even if a pod dies) and a load balancer.
Translate HTTP/S rules to point to services.
The API server allows users to interact with K8s components using the KubeCTL or by sending HTTP requests.
Kubelet is an agent installed on all nodes. Kubelet allows users to interact with node via the API server and KubeCTL.
Allows you to link a Cloud Service Provider (CSP) eg. AWS, Azure, GCP to leverage cloud services.
A control loop that watches the state of the cluster and will change the currect state backto desdired state.
Determinies where to place pods on nodes. Places them in a scheduling a queue.
An application on worker nodes that provides routing and filtering rules for ingress (incoming) traffic to pods.
Acts as a virtual firewall at the namespace level or pod level.
ConfigMap allows you to decouple environment specific configuration from your container images, so that your applications are easily portable. Used to store non-confidential data in key-value pair.
Small amount of sensitive data such as a password, a token, or a key.
Volumes mounting storage eg. locally on the node, or remote to cloud storage.
StatefulSet provides guarantees about the ordering and uniqueness of these Pods.
- Think of databases where you have to determine read and write order or limit the amount of containers.
- StatefulSets are hard when you host your db externally from the K8s cluster.
Maintain a stable set of replica pods running at a given time. Can provide a guarantee of availability.
Is a blueprint for a pod.