Try   HackMD

Kubernetes Fundamentals Quiz - Section 1

Question 1

What is the correct way to create a new pod in Kubernetes using kubectl?

  • A) kubectl create pod nginx
  • B) kubectl run nginx image=nginx
  • C) kubectl start nginx image=nginx
  • D) kubectl deploy nginx-pod image=nginx
Show Answer

Correct Answer: B) kubectl run nginx image=nginx

This is the simplest way to create a single pod running the nginx image. The kubectl run command creates a pod directly, while other options are either incorrect syntax or create different resources.

Question 2

What's the purpose of a ReplicaSet in Kubernetes?

  • A) To ensure a specified number of pod replicas are running at any time
  • B) To replicate data across multiple storage volumes
  • C) To copy configurations across different namespaces
  • D) To duplicate services across multiple clusters
Show Answer

Correct Answer: A) To ensure a specified number of pod replicas are running at any time

A ReplicaSet's main purpose is to maintain a stable set of replica Pods running at any given time. It guarantees the availability of a specified number of identical Pods.

Question 3

Which component of Kubernetes is responsible for maintaining the desired state of the cluster?

  • A) kubelet
  • B) kube-proxy
  • C) kube-controller-manager
  • D) kube-scheduler
Show Answer

Correct Answer: C) kube-controller-manager

The kube-controller-manager runs controller processes that regulate the state of the cluster. It ensures that the cluster's current state matches the desired state specified in the control plane.

Question 4

What is the difference between a Deployment and a StatefulSet?

  • A) Deployments are for stateless apps, StatefulSets for stateful apps
  • B) Deployments support rolling updates, StatefulSets don't
  • C) StatefulSets are deprecated, Deployments are the new standard
  • D) There is no difference, they are interchangeable
Show Answer

Correct Answer: A) Deployments are for stateless apps, StatefulSets for stateful apps

StatefulSets are used for applications that require stable network identifiers, persistent storage, and ordered deployment and scaling, while Deployments are ideal for stateless applications.

Question 5

What Kubernetes resource would you use to expose a service externally using a load balancer?

  • A) ExternalName
  • B) NodePort
  • C) LoadBalancer
  • D) ClusterIP
Show Answer

Correct Answer: C) LoadBalancer

The LoadBalancer service type creates an external load balancer in the cloud provider and assigns a fixed, external IP to the service.

Question 6

Which of these correctly describes a Kubernetes namespace?

  • A) A virtual cluster inside your Kubernetes cluster
  • B) A networking segmentation tool
  • C) A type of container runtime
  • D) A storage class definition
Show Answer

Correct Answer: A) A virtual cluster inside your Kubernetes cluster

Namespaces provide a mechanism for isolating groups of resources within a single cluster, acting as virtual clusters within a physical cluster.

Question 7

What happens to the pods managed by a ReplicaSet when it is deleted?

  • A) Pods continue running
  • B) Pods are automatically deleted
  • C) Pods enter a suspended state
  • D) Pods are moved to another ReplicaSet
Show Answer

Correct Answer: B) Pods are automatically deleted

When a ReplicaSet is deleted, all pods managed by it are also deleted by default, unless the cascading deletion is explicitly disabled.

Question 8

Which command shows the logs of a specific container in a multi-container pod?

  • A) kubectl logs pod-name
  • B) kubectl logs pod-name -c container-name
  • C) kubectl describe pod pod-name
  • D) kubectl get logs pod-name container-name
Show Answer

Correct Answer: B) kubectl logs pod-name -c container-name

The -c flag specifies which container's logs to show when a pod has multiple containers.

Question 9

What is the purpose of a DaemonSet?

  • A) To run a Pod on all (or some) nodes in the cluster
  • B) To run system daemons
  • C) To manage stateful applications
  • D) To handle network routing
Show Answer

Correct Answer: A) To run a Pod on all (or some) nodes in the cluster

A DaemonSet ensures that all (or some) nodes run a copy of a Pod. Common uses include running cluster storage daemons or log collection daemons on every node.

Question 10

How do you scale a deployment named "nginx-deployment" to 5 replicas?

  • A) kubectl scale deployment nginx-deployment replicas=5
  • B) kubectl set replicas deployment/nginx-deployment 5
  • C) kubectl deployment scale nginx-deployment to=5
  • D) kubectl edit deployment nginx-deployment replicas=5
Show Answer

Correct Answer: A) kubectl scale deployment nginx-deployment replicas=5

This is the standard way to scale a deployment. It updates the desired number of replicas in the deployment specification.

Kubernetes Fundamentals Quiz - Section 2

Question 11

What is the purpose of a Service Account in Kubernetes?

  • A) To authenticate human users
  • B) To provide an identity for pods running in the cluster
  • C) To manage billing information
  • D) To store sensitive credentials
Show Answer

Correct Answer: B) To provide an identity for pods running in the cluster

Service Accounts provide an identity for processes running in a Pod to authenticate with the Kubernetes API server and interact with other cluster resources.

Question 12

Which Kubernetes primitive should you use to run a one-time task that exits upon completion?

  • A) Deployment
  • B) Job
  • C) CronJob
  • D) DaemonSet
Show Answer

Correct Answer: B) Job

Jobs are perfect for running one-off tasks that should complete successfully and then stop, unlike Deployments which are meant for long-running processes.

Question 13

What is the purpose of a PodDisruptionBudget?

  • A) To limit resource usage by pods
  • B) To ensure high availability during voluntary disruptions
  • C) To schedule pods on specific nodes
  • D) To manage pod networking policies
Show Answer

Correct Answer: B) To ensure high availability during voluntary disruptions

PodDisruptionBudgets limit the number of pods that can be simultaneously down during voluntary disruptions, helping maintain application availability.

Question 14

How do you apply a label to an existing pod?

  • A) kubectl label pod podname key=value
  • B) kubectl set label pod podname key=value
  • C) kubectl annotate pod podname key=value
  • D) kubectl tag pod podname key=value
Show Answer

Correct Answer: A) kubectl label pod podname key=value

The kubectl label command is used to add or update labels on existing resources.

Question 15

What is the purpose of the kube-proxy component?

  • A) To provide authentication services
  • B) To manage network rules for pod communication
  • C) To schedule pods on nodes
  • D) To manage container runtime
Show Answer

Correct Answer: B) To manage network rules for pod communication

kube-proxy maintains network rules on nodes that allow network communication to pods from inside or outside the cluster.

Question 16

What command would you use to create a new namespace called "production"?

  • A) kubectl create production
  • B) kubectl create namespace production
  • C) kubectl namespace new production
  • D) kubectl new namespace production
Show Answer

Correct Answer: B) kubectl create namespace production

The kubectl create namespace command is used to create a new namespace. This creates an isolated environment for resources within your cluster.

Question 17

How do you create a ConfigMap from a file?

  • A) kubectl apply configmap from-file=config.properties
  • B) kubectl create configmap myconfig from-file=config.properties
  • C) kubectl config create from-file=config.properties
  • D) kubectl create config file=config.properties
Show Answer

Correct Answer: B) kubectl create configmap myconfig from-file=config.properties

This command creates a ConfigMap named "myconfig" with the contents of the config.properties file.

Question 18

What is the purpose of a Pod's readiness probe?

  • A) To determine if a pod should be restarted
  • B) To check if a pod is ready to accept traffic
  • C) To monitor pod resource usage
  • D) To verify pod security settings
Show Answer

Correct Answer: B) To check if a pod is ready to accept traffic

Readiness probes determine when a pod is ready to accept traffic. A pod is considered ready when all of its containers are ready.

Question 19

Which of these storage options provides persistent storage that survives pod restarts?

  • A) emptyDir
  • B) PersistentVolume
  • C) hostPath
  • D) configMap
Show Answer

Correct Answer: B) PersistentVolume

PersistentVolumes provide a way to store data that persists beyond the lifecycle of a pod and can survive pod restarts or rescheduling.

Question 20

What is the purpose of a NetworkPolicy?

  • A) To configure cluster networking
  • B) To define pod-to-pod communication rules
  • C) To set up load balancing
  • D) To manage external access to services
Show Answer

Correct Answer: B) To define pod-to-pod communication rules

NetworkPolicies specify how groups of pods are allowed to communicate with each other and other network endpoints.

Kubernetes Fundamentals Quiz - Section 3

Question 21

What is the purpose of a HorizontalPodAutoscaler?

  • A) To automatically scale nodes in the cluster
  • B) To automatically scale the number of pods based on resource usage
  • C) To manage pod placement across nodes
  • D) To scale persistent volumes
Show Answer

Correct Answer: B) To automatically scale the number of pods based on resource usage

HorizontalPodAutoscaler automatically scales the number of pods in a deployment, replication controller, or replica set based on observed CPU utilization or other metrics.

Question 22

Which command is used to create a secret from literal values?

  • A) kubectl create secret generic mysecret from-literal=password=mypass
  • B) kubectl apply secret mysecret value=password=mypass
  • C) kubectl secret create mysecret password=mypass
  • D) kubectl create mysecret from-literal=password=mypass
Show Answer

Correct Answer: A) kubectl create secret generic mysecret from-literal=password=mypass

This command creates a secret named "mysecret" with a key-value pair where the key is "password" and the value is "mypass".

Question 23

What is the purpose of a PodSecurityPolicy?

  • A) To encrypt pod communications
  • B) To define a set of conditions that a pod must run with
  • C) To authenticate pods to the API server
  • D) To scan pods for vulnerabilities
Show Answer

Correct Answer: B) To define a set of conditions that a pod must run with

PodSecurityPolicies define a set of conditions that a pod must run with in order to be accepted into the system, controlling security-sensitive aspects of pod specification.

Question 24

How do you forcefully delete a pod without waiting for graceful termination?

  • A) kubectl delete pod mypod force
  • B) kubectl delete pod mypod grace-period=0 force
  • C) kubectl remove pod mypod now
  • D) kubectl terminate pod mypod
Show Answer

Correct Answer: B) kubectl delete pod mypod grace-period=0 force

This command forcefully deletes the pod without waiting for graceful termination. The grace-period=0 sets the termination period to 0 seconds.

Question 25

What is the purpose of a Service's sessionAffinity field?

  • A) To maintain persistent storage
  • B) To keep user sessions on the same pod
  • C) To manage service accounts
  • D) To configure load balancing algorithms
Show Answer

Correct Answer: B) To keep user sessions on the same pod

When sessionAffinity is set to "ClientIP", the service will route all requests from the same client IP to the same pod.

Question 26

Which component is responsible for container runtime operations?

  • A) kube-scheduler
  • B) kubelet
  • C) kube-proxy
  • D) controller-manager
Show Answer

Correct Answer: B) kubelet

The kubelet is the primary node agent that runs on each node. It ensures containers are running in a pod and handles container runtime operations.

Question 27

What is the purpose of a RoleBinding?

  • A) To define permissions
  • B) To assign roles to users or service accounts
  • C) To create new roles
  • D) To manage pod scheduling
Show Answer

Correct Answer: B) To assign roles to users or service accounts

RoleBinding binds a Role or ClusterRole to users, groups, or service accounts, granting them the permissions defined in the role.

Question 28

How do you view the current resource usage of nodes?

  • A) kubectl top nodes
  • B) kubectl describe nodes
  • C) kubectl get nodes show-metrics
  • D) kubectl metrics nodes
Show Answer

Correct Answer: A) kubectl top nodes

The kubectl top nodes command shows the resource usage (CPU and memory) of nodes in the cluster.

Question 29

What is the purpose of an Init Container?

  • A) To run setup tasks before app containers start
  • B) To initialize the Kubernetes cluster
  • C) To create initial pod configurations
  • D) To start the container runtime
Show Answer

Correct Answer: A) To run setup tasks before app containers start

Init Containers run and complete before the app containers are started, perfect for setup tasks like database schema creation or waiting for dependencies.

Question 30

Which field in a pod specification ensures the pod is scheduled on a specific node?

  • A) nodeSelector
  • B) nodeName
  • C) hostName
  • D) schedulerName
Show Answer

Correct Answer: B) nodeName

The nodeName field directly specifies which node the pod should be scheduled on, bypassing the scheduler entirely.

Kubernetes Fundamentals Quiz - Section 4

Question 31

What is the purpose of a Taint in Kubernetes?

  • A) To mark a node as preferred for certain pods
  • B) To prevent pods from being scheduled on a node
  • C) To isolate network traffic
  • D) To mark pods as vulnerable
Show Answer

Correct Answer: B) To prevent pods from being scheduled on a node

Taints prevent pods from being scheduled on nodes unless the pods have matching tolerations, allowing nodes to repel certain pods.

Question 32

Which command would you use to get the YAML definition of a running pod?

  • A) kubectl get pod mypod -o yaml
  • B) kubectl describe pod mypod yaml
  • C) kubectl pod mypod output=yaml
  • D) kubectl yaml pod mypod
Show Answer

Correct Answer: A) kubectl get pod mypod -o yaml

This command outputs the complete YAML definition of the specified pod, including its current state and specifications.

Question 33

What is the purpose of a ResourceQuota?

  • A) To limit resource usage within a namespace
  • B) To request resources for pods
  • C) To monitor resource availability
  • D) To allocate resources to nodes
Show Answer

Correct Answer: A) To limit resource usage within a namespace

ResourceQuotas provide constraints that limit aggregate resource consumption per namespace, helping maintain cluster stability.

Question 34

How do you view logs from a previous instance of a pod?

  • A) kubectl logs mypod history
  • B) kubectl logs mypod previous
  • C) kubectl logs mypod old
  • D) kubectl logs mypod -p
Show Answer

Correct Answer: B) kubectl logs mypod previous

The previous flag allows you to see logs from a previous instance of a container in the pod if it has been restarted.

Question 35

What is the purpose of a LimitRange?

  • A) To set default resource limits for pods
  • B) To limit cluster size
  • C) To restrict network bandwidth
  • D) To control pod scaling limits
Show Answer

Correct Answer: A) To set default resource limits for pods

LimitRange provides constraints on resource allocations (limits and requests) for each type of resource in a namespace.

Question 36

Which component manages load balancing of service traffic?

  • A) kube-proxy
  • B) kubelet
  • C) service-proxy
  • D) load-balancer
Show Answer

Correct Answer: A) kube-proxy

kube-proxy maintains network rules on nodes that allow network communication to your Pods from network sessions inside or outside of your cluster.

Question 37

What is the purpose of a PodPreset?

  • A) To inject common pod configurations
  • B) To set pod priorities
  • C) To define pod templates
  • D) To schedule pods on nodes
Show Answer

Correct Answer: A) To inject common pod configurations

PodPresets are objects that inject certain information into pods at creation time, such as secrets, volumes, or environment variables.

Question 38

How do you update a deployment's image without downtime?

  • A) kubectl set image deployment/myapp container=newimage
  • B) kubectl update deployment myapp image=newimage
  • C) kubectl rolling-update myapp image=newimage
  • D) kubectl deploy myapp image=newimage rolling
Show Answer

Correct Answer: A) kubectl set image deployment/myapp container=newimage

This command performs a rolling update, updating pods gradually to ensure zero downtime during the update process.

Question 39

What is the purpose of a StorageClass?

  • A) To define different types of storage
  • B) To classify pod storage requirements
  • C) To manage storage drivers
  • D) To limit storage usage
Show Answer

Correct Answer: A) To define different types of storage

StorageClasses provide a way to describe the different "classes" of storage offered by cluster administrators.

Question 40

Which feature ensures pods are distributed across nodes in the cluster?

  • A) Pod anti-affinity
  • B) Node selector
  • C) Pod affinity
  • D) Node affinity
Show Answer

Correct Answer: A) Pod anti-affinity

Pod anti-affinity can be used to ensure that pods are scheduled on different nodes, helping to distribute the workload across the cluster.

Kubernetes Fundamentals Quiz - Section 5

Question 41

What is the purpose of a CustomResourceDefinition (CRD)?

  • A) To define custom resources in Kubernetes
  • B) To create custom commands
  • C) To modify existing resources
  • D) To customize the API server
Show Answer

Correct Answer: A) To define custom resources in Kubernetes

CRDs allow you to define your own custom resources, extending the Kubernetes API with new types of objects specific to your needs.

Question 42

How do you create a static pod?

  • A) Place pod manifest in the static pod path
  • B) Use kubectl create static pod
  • C) Add static label to pod
  • D) Use static namespace
Show Answer

Correct Answer: A) Place pod manifest in the static pod path

Static pods are created by placing a pod definition file in the designated static pod path on a node, which is watched by the kubelet.

Question 43

What is the purpose of a ValidatingWebhookConfiguration?

  • A) To validate API requests before persistence
  • B) To validate pod configurations
  • C) To verify user credentials
  • D) To check node health
Show Answer

Correct Answer: A) To validate API requests before persistence

ValidatingWebhookConfiguration defines webhooks that intercept and validate API requests before they are persisted to etcd.

Question 44

Which command shows the events in a namespace?

  • A) kubectl get events
  • B) kubectl describe events
  • C) kubectl show events
  • D) kubectl list events
Show Answer

Correct Answer: A) kubectl get events

kubectl get events shows all events in the current namespace, helping with debugging and monitoring cluster state.

Question 45

What is the purpose of the pause container?

  • A) To hold pod namespace and networking
  • B) To pause pod execution
  • C) To debug containers
  • D) To store container images
Show Answer

Correct Answer: A) To hold pod namespace and networking

The pause container serves as the parent container in a pod, holding the network namespace and other resources that are shared by all containers in the pod.

Question 46

How do you perform a rollback of a deployment?

  • A) kubectl rollout undo deployment/myapp
  • B) kubectl deployment rollback myapp
  • C) kubectl undo deployment myapp
  • D) kubectl revert deployment/myapp
Show Answer

Correct Answer: A) kubectl rollout undo deployment/myapp

This command rolls back a deployment to its previous version. You can also specify a specific revision using to-revision.

Question 47

What's the purpose of a MutatingWebhookConfiguration?

  • A) To modify objects before they are stored
  • B) To validate object configurations
  • C) To mutate pod specifications
  • D) To change running containers
Show Answer

Correct Answer: A) To modify objects before they are stored

MutatingWebhookConfiguration defines webhooks that can modify objects before they are persisted, allowing for automatic modifications to resources.

Question 48

What is the purpose of a PodDisruptionBudget's minAvailable field?

  • A) To specify minimum pods that must be available during disruption
  • B) To set minimum pod resources
  • C) To define minimum pod replicas
  • D) To set minimum node availability
Show Answer

Correct Answer: A) To specify minimum pods that must be available during disruption

minAvailable specifies the minimum number of pods that must remain available during voluntary disruptions, ensuring service availability.

Question 49

Which component is responsible for cluster DNS services?

  • A) CoreDNS
  • B) kube-dns
  • C) dns-controller
  • D) Both A and B are correct
Show Answer

Correct Answer: D) Both A and B are correct

Both CoreDNS (newer) and kube-dns (older) can provide DNS services in a Kubernetes cluster, with CoreDNS being the default since Kubernetes 1.13.

Question 50

What is the purpose of a cluster-autoscaler?

  • A) To automatically adjust the number of nodes in the cluster
  • B) To scale pod replicas
  • C) To adjust resource limits
  • D) To scale persistent volumes
Show Answer

Correct Answer: A) To automatically adjust the number of nodes in the cluster

The cluster-autoscaler automatically adjusts the size of the Kubernetes cluster based on resource demands and configured policies.