GettingStartedWithK8S Flashcards
What is Kubernetes?
Kubernetes is a portable, extensible, open-source platform for managing containerized workloads and services that facilitates both declarative configuration and automation.
A tool that helps us manage containers.
What does “K8s” mean?
A short way of writing the word “Kubernetes.”
The “8” in “K8s” stands for the eight letters between the “K” and the “s” in the word “Kubernetes.”
What does Kubernetes do?
Builds a layer of abstraction around running containers on multiple servers, called the K8s cluster. It manages running the containers on multiple servers in the K8s cluster.
Name some K8s Features
- Container Orchestration
- Application Reliability
- Automation
Define K8s Container Orchestration
The primary purpose of Kubernetes is to dynamically manage containers across multiple host systems.
Define K8s Application Reliability
Kubernetes makes it easier to build reliable, self-healing, and scalable applications.
Define K8s Automation
Kubernetes offers a variety of features to help automate the management of your container apps.
What are the components of the K8s Architectural Overview?
- K8s Control Plane
- K8s Nodes
- K8s Cluster
What is the K8s Control Plane?
The K8s control plane is a collection of multiple components responsible for managing the K8s cluster itself globally. Essentially, the control plane controls the cluster.
Individual control plane components can run on any machine in the cluster but usually run on dedicated controller machines.
What is the kube-api-server?
kube-api-server serves the Kubernetes API, the primary frontend interface to the control plane and the cluster itself.
When interacting with your Kubernetes cluster, you will usually do so using the K8s API.
Name the 5 components that make up the Kubernetes Control Plane.
- kube-api-server
- Etcd
- kube-controller-manager
- kube-scheduler
- cloud-controller-manager
What is Etcd?
Etcd is the backend data store for the Kubernetes cluster. It provides high-availability storage for all data relating to the state of the cluster.
What is the kube-scheduler?
kube-scheduler handles scheduling, the process of selecting an available node in the cluster on which to run containers. Essentially, the kube-scheduler assigns containers to specific worker nodes.
What is the kube-controller-manager?
kube-controller-manager runs a collection of multiple controller utilities in a single process. These controllers carry out a variety of automation-related tasks within the Kubernetes cluster.
What is the cloud-controller-manager?
cloud-controller-manager provides an interface between Kubernetes and various cloud platforms. It is only used when using cloud-based resources alongside Kubernetes.
What are Kubernetes Nodes?
Kubernetes nodes are the machines where the containers managed by the cluster run. A cluster can have any number of nodes.
Various node components manage containers on he machine and communicate with the K8s control plane.
Name the components of a Kubernetes Node.
- Kublet
- Container runtime
- kube-proxy
What is the K8s kublet?
Kubelet is the Kubernetes agent that runs on each node. It communicates with the control plane and ensures that the containers are run on its node as instructed by the control plane.
Kublet also handles the process of reporting container status and other data about containers back to the control plane.
What is a container runtime?
The container runtime is not built into Kubernetes. It is a separate piece of software that is responsible for actually running containers on the machine.
Kubernetes supports multiple container runtime implementations. Some popular container runtimes are Docker and containerd.
What is the kube-proxy?
kube-proxy is a network proxy. It runs on each node and handles some tasks related to providing networking between containers and services in the cluster.
What is kubeadm?
A tool to simplify setting up a K8s cluster.
What is a Namespace?
Namespaces are virtual clusters backed by the same physical cluster. Kubernetes objects, such as pods and containers, live in namespaces. Namespaces are a way to separate and organize objects in your cluster.
What command would you run to list existing namespaces?
kubectl get namespaces
What is the name of the namespace that all clusters have?
default
The “default” namespace is used when no other namespace is specified.