Kubernetes is Google’s open source system for managing Linux containers across private, public and hybrid cloud environments.
It is used to automate the deployment, scaling, maintenance, scheduling and operation of multiple application containers across clusters of nodes. It offers an excellent community and works brilliantly with all the cloud providers. So, we can say that Kubernetes is not a containerization platform, but it is a multi-container management solution.
With Kubernetes, you are able to quickly and efficiently respond to customer demand:
- Scale your applications on the fly.
- Deploy your applications quickly and predictably.
- Limit hardware usage to required resources only
- Scale your applications on the fly.
- Roll out new features seamlessly.
Let’s jump right in and learn the top Kubernetes interview questions and answers
Kubernetes Interview Questions & Answers
1. What is Kubernetes?
The purpose of kubernetes is to manage a containerized application in various types of physical, virtual, and cloud environments. Google Kubernetes is a highly flexible container tool to deliver even complex applications, consistently. Applications run on clusters of hundreds to thousands of individual servers.
2. Why do we need Kubernetes and what can it do?
Kubernetes is the container that provides a good way to run and bundle your applications. We need to effectively manage the containers in the production environment that allows us to run applications. It also provides a framework to run distributed systems resiliently.
3. How does Kubernetes relate to Docker?
Kubernetes is a container for Docker which is more comprehensive than Docker Swarm and is designed to counter clusters of the nodes at a level in a well-defined manner. Whereas, Docker is the platform tool for building and running the Docker containers.
4. What is a container?
It always helps to know what is being deployed in your pod, because what’s deployment without knowing what you’re deploying in it? A container is a standard unit of software packages up code and all its dependencies.
Two optional secondary answers I received and am OK with include:
a) A slimmed-down image of an OS and
b) Application running in a limited OS environment.
Bonus points if you can name orchestration software that uses containers other than Docker, like your favourite Public cloud’s container service.
5. How can you get a static IP for a Kubernetes load balancer?
A static IP for the Kubernetes load balancer can be achieved by changing DNS records since the Kubernetes Master can assign a new static IP address.
6. What do you understand about the term Kube-proxy?
This is a network-proxy that runs on each and every node and also reflects as defined in the Kubernetes API. This proxy can also perform stream forwarding across a set of backends. It is one of the optional add-ons that provide the DNS cluster for the cluster APIs.
The syntax to configure Proxy is:
kubectl [command] [TYPE] [NAME] [flags]
7. What are the features of Kubernetes?
- Self-Healing Capabilities
- Automated rollouts & rollback
- Horizontal Scaling & Load Balancing
- Offers enterprise-ready features
- Application-centric management
- Auto-scalable infrastructure
- You can create predictable infrastructure
8. What is the difference between Kubernetes and Docker Swarm?
- Docker Swarm can’t do auto-scaling (as can Kubernetes); however, Docker scaling is five times faster than Kubernetes.
- Docker Swarm does automatic load balancing of traffic between containers in a cluster, while Kubernetes requires manual intervention for load balancing such traffic.
- Docker Swarm is Docker’s native, open-source container orchestration platform that is used to cluster and schedule Docker containers. Swarm differs from Kubernetes in the following ways:
- Docker Swarm is more convenient to set up but doesn’t have a robust cluster, while Kubernetes is more complicated to set up but the benefit of having the assurance of a robust cluster
- Docker Swarm doesn’t have a GUI; Kubernetes has a GUI in the form of a dashboard .
- Docker requires third-party tools like ELK stack for logging and monitoring, while Kubernetes has integrated tools for the same
- Docker Swarm can share storage volumes with any container easily, while Kubernetes can only share storage volumes with containers in the same pod
- Docker can deploy rolling updates but can’t deploy automatic rollbacks; Kubernetes can deploy rolling updates as well as automatic rollbacks
9. What is a node in Kubernetes?
A node is the smallest fundamental unit of computing hardware. It represents a single machine in a cluster, which could be a physical machine in a data center or a virtual machine from a cloud provider. Each machine can substitute any other machine in a Kubernetes cluster. The master in Kubernetes controls the nodes that have containers.
10. What are the tools that are used for container monitoring?
- In a Kubernetes cluster, Kubelet acts as a bridge between the master and the nodes.
- Container Advisor (cAdvisor)
- Kubernetes Dashboard.
- Weave Scope.
11. What is a kubelet?
The kubelet is a service agent that controls and maintains a set of pods by watching for pod specs through the Kubernetes API server. It preserves the pod lifecycle by ensuring that a given set of containers are all running as they should. The kubelet runs on each node and enables the communication between the master and slave nodes.
12. What is Kubectl?
Kubectl is a CLI (command-line interface) that is used to run commands against Kubernetes clusters. As such, it controls the Kubernetes cluster manager through different create and manage commands on the Kubernetes component.
13. What is GKE?
GKE is Google Kubernetes Engine that is used for managing and orchestrating systems for Docker containers. With the help of Google Public Cloud, we can also orchestrate the container cluster.
14. What is Ingress Default Backend?
It specifies what to do with an incoming request to the Kubernetes cluster that isn’t mapped to any backend i.e what to do when no rules being defined for the incoming HTTP request If the default backend service is not defined, it’s recommended to define it so that users still see some kind of message instead of an unclear error.
15. Define K8s?
K8s is another term for Kubernetes.
16. What are Kubernetes pods?
Pods are defined as the group of the containers that are set up on the same host. Applications within the pod also have access to shared volumes.
17. Why use namespace in Kubernetes?
Namespaces in Kubernetes are used for dividing cluster resources between users. It helps the environment where more than one user spreads projects or teams and provides a scope of resources.
18. What tasks are performed by Kubernetes?
Kubernetes is the Linux kernel which is used for distributed systems. It helps you to abstract the underlying hardware of the nodes(servers) and offers a consistent interface for applications that consume the shared pool of resources.
19. What is ‘Heapster’ in Kubernetes?
In this Kubernetes interview question, the interviewer would expect a thorough explanation. You can explain what it is and also it has been useful to you (if you have used it in your work so far!). A Heapster is a performance monitoring and metrics collection system for data collected by the Kublet. This aggregator is natively supported and runs like any other pod within a Kubernetes cluster, which allows it to discover and query usage data from all nodes within the cluster.
20. What are Kubernetes Minions?
Node in the Kubernetes is called as minions previously, it is a work machine in the Kubernetes. Each and every node in the Kubernetes contains the services to run the pods.
21. What are minions in the Kubernetes cluster?
- They are components of the master node.
- They are the work-horse / worker node of the cluster.[Ans]
- They are monitoring engines used widely in kubernetes.
- They are docker container services.
22. What is etcd?
Kubernetes uses etcd as a distributed key-value store for all of its data, including metadata and configuration data, and allows nodes in Kubernetes clusters to read and write data. Although etcd was purposely built for CoreOS, it also works on a variety of operating systems (e.g., Linux, BSB, and OS X) because it is open-source. Etcd represents the state of a cluster at a specific moment in time and is a canonical hub for state management and cluster coordination of a Kubernetes cluster.
23. What is ClusterIP?
The ClusterIP is the default Kubernetes service that provides a service inside a cluster (with no external access) that other apps inside your cluster can access.
24. Give examples of recommended security measures for Kubernetes.
Examples of standard Kubernetes security measures include defining resource quotas, support for auditing, restriction of etcd access, regular security updates to the environment, network segmentation, definition of strict resource policies, continuous scanning for security vulnerabilities, and using images from authorized repositories.
25. Name the initial namespaces from which Kubernetes starts?
- Kube – system
- Kube – public
26. What is the future scope for Kubernetes?
Kubernetes will become one of the most used operating systems (OS. for the cloud in the future. The future of Kubernetes mostly lies in virtual machines (VM. than n containers.)
27. What is Kubernetes load balancing?
The process of load balancing lets you show or display the services. There are two types of load balancing in kubernetes, and they are:
- Internal load balancing
- External load balancing
Internal load balancing: This balancing is used to balance the loads automatically and allocates the pods within the necessary configuration.
External load balancing: It transfers or drags the entire traffic from the external loads to backend pods.
28. What are Cloud-native apps?
These run on the cloud, which means on any cloud – private, public, hybrid. They also run in an on-premise datacenter.
The right answer is- applications designed and written in such a way that scale up or scale down as demand rises or falls.
29. What are Apps in Kubernetes?
The Apps, which are developed by individual clients, deploy to the cloud in the form of packaged containers. Kubernetes will take care of these to run on the cloud as needed.
30. List out the components that interact with the node interface of Kubernetes?
The following are the components that interact with the node interface of Kubernetes, and they are:
- Node Controller
31. What are the three components of Nodes?
Those are Kubelet, Container run-time, Kube-proxy.
How can you ensure the security of your environment while using Kubernetes?
You can follow and implement the following security measures while using Kubernetes:
- Restrict ETCD access
- Limit direct access to nodes
- Define resource uota
- Everything should be logged on the production environment.
32. What is the desired-state?
While deploying apps, you need to define the desired state in the Kubernetes. When the App state changes, the Kubernetes will correct it.
33. What is the virtualization of Pods?
In the Kubernetes world, Pods will virtualize based on demand or fall.
34. What are Daemon sets?
A Daemon set is a set of pods that runs only once on a host. They are used for host layer attributes like a network or for monitoring a network, which you may not need to run on a host more than once.
35. What are the components of the Kubernetes Master machine? Explain
The following are the key components of Kubernetes Master machine:
ETCD: ETCD is used to store the configuration data of every node present in the cluster. It can store a good amount of key values which can be shared with several nodes in the cluster. Because of its sensitivity, Kubernetes API Server can only access ETCD. But, it contains a shared key value store which can be accessed by everyone.
API Server: Kubernetes itself is an API server that controls and manages the operations in a cluster through API Server. This server provides an interface to access various system libraries and tools to communicate with it.
Process Planner(Scheduler): Scheduling is the major component of Kubernetes Master machine. Scheduler shares the workload. Scheduler is responsible to monitor the amount of workload distributed and used in the cluster nodes. It also keeps the workload after monitoring the available resources to receive the workload.
Control Manager: This component is responsible for administering the current position of the cluster. It is equivalent to a daemon process that continuously runs in an unending loop which collects and sends the collected data to the API server. It handles and controls various controllers.
36. What does the node status contain?
The main components of a node status are Address, Condition, Capacity, and Info.
37. What is the desired-state?
While deploying apps, you need to define the desired state in the Kubernetes. When the App state changes, the Kubernetes will correct it
38. Explain how you will set up Kubernetes.
Virtual Data Center is the basic setup before installing Kubernetes. Virtual Data center is actually believed to be a set of machines which can interact with each of them through a network. If the user does not have any existing infrastructure for cloud, he can go for setting up a Virtual Data Center in the PROFITBRICKS. Once completing this setup, the user has to setup and configure the master and node. For instance, we can consider the setup in Linux Ubuntu. Same setup can be followed in other Linux machines.
39. What do you understand by container resource monitoring?
From the user perspective, it is vital to understand resource utilization at different abstraction layers and levels, like container pods, services, and the entire cluster. Each level can be monitored using various tools, namely:
40. What is the use of the API server in Kubernetes?
The API server is responsible for providing a front end to the clusters that are shared. Through this interface, the master and node communicate with one another. The primary function of an API server is to substantiate and configure the API objects which includes pods, associated services, controllers etc.
42. What are Masters in Kubernetes?
It is a control panel, 3 or 4 highly available masters present in production Kubernetes apps. These Masters manage the Kubernetes-cluster nodes.