Cluster Architecture Flashcards
What are the components in a k8s node, describe them
Kubelet which ensures pods are running and healthy, container runtime software responsible for running the containers, kube-proxy which mantains network rules
Describe in detail tasks that the kubelet performs
- Runs probes on containers do determine their healthiness, readiness
- Gets information from the node and publishes it into the Kubernetes API
- Create and updates .status of nodes and updates their related Leases.
- Registers itself to the API for node registration
How do you make a node unschedulable?
kubectl cordon $NodeName
What information can you find in a node status?
Addresses - hostnames, externalips, internal ips
Conditions - node statuses,
capacity and allocatable - Resources available and maximum number of pods
Info - general information like kernel version kubernetes version container runtime details, os…
How are comunnications made from a Node to the Master?
The API server listens for https connections, and Pods can communicate by leveraging a service account so that they can have the public root certificate injected on them on startup. Hitting the kubernetes service in the default namespace redirects traffic to the API through kube-proxy. These communications are safe to use in untrusted/public networks
How are communications made from Master to Nodes?
Master to Node communication is done by API to kubelet communications, which is not https by default. Or from API server to the nodes pods and services directly trough http which is not safe to use on public networks. To make this communications safe see Konnectivity service.
What is a controller in kubernetes?
A controller is a non-terminating loop that regulates the state of the cluster (control loop) and makes or requests changes where needed. A controller tracks at least one Kubernetes resource type.
What types control do controllers have?
A controller can either request to make changes through the API, or it can have direct control
Where do built-in controllers run?
Built-in controllers run inside the kubelet-controller-manager