Services and Networking Quiz
This quiz tests your understanding of Kubernetes networking concepts including service types, Ingress, network policies, and service discovery.
Multiple Choice Questions
- What is the default service type in Kubernetes?
- A) NodePort
- B) LoadBalancer
- C) ClusterIP
- D) ExternalName
Show Answer
Answer: C) ClusterIP
Explanation: ClusterIP is the default service type in Kubernetes, providing an IP address that is only accessible within the cluster. This service allows other applications within the cluster to access the service, but it cannot be accessed from outside the cluster.
- Which API object exposes HTTP and HTTPS routes from outside the cluster to services within the cluster?
- A) Service
- B) Ingress
- C) Endpoint
- D) NetworkPolicy
Show Answer
Answer: B) Ingress
Explanation: Ingress is an API object that exposes HTTP and HTTPS routes from outside the cluster to services within the cluster. Ingress provides load balancing, SSL termination, and name-based virtual hosting.
- Which two are the built-in Kubernetes Service discovery mechanisms? (Select two.)
- A) Environment variables
- B) DNS
- C) Service Mesh
- D) ConfigMap
Show Answer
Answer: A) Environment variables and B) DNS
Explanation: Kubernetes provides two main service discovery methods: environment variables and DNS. ConfigMap is used to store configuration data and is not a service discovery mechanism.
- Which service type in Kubernetes makes services accessible through a specific port on all nodes?
- A) ClusterIP
- B) NodePort
- C) LoadBalancer
- D) ExternalName
Show Answer
Answer: B) NodePort
Explanation: NodePort services make services accessible through a specific port on all nodes. This service type allows access to the service through each node's IP address and NodePort value (allocated by default in the range 30000-32767).
- What type of service has no cluster IP and creates DNS records for each pod?
- A) NodePort service
- B) LoadBalancer service
- C) Headless service
- D) ExternalName service
Show Answer
Answer: C) Headless service
Explanation: A headless service is a service configured with clusterIP: None, which does not allocate a cluster IP and creates DNS records for each pod. This is useful when clients need to access specific pods behind the service directly.
- Which resource provides a way to control communication between pods in Kubernetes?
- A) Service
- B) Ingress
- C) NetworkPolicy
- D) EndpointSlice
Show Answer
Answer: C) NetworkPolicy
Explanation: NetworkPolicy provides a way to control communication between pods. Using network policies, you can restrict ingress and egress traffic between pods.
- What is used as the DNS server for Kubernetes clusters?
- A) kube-dns
- B) CoreDNS
- C) NodeDNS
- D) ClusterDNS
Show Answer
Answer: B) CoreDNS
Explanation: CoreDNS is a flexible and extensible DNS server used as the DNS server for Kubernetes clusters. Since Kubernetes 1.11, CoreDNS has been used as the default DNS server.
- Which Linux kernel technology does Cilium utilize?
- A) iptables
- B) netfilter
- C) eBPF
- D) nftables
Show Answer
Answer: C) eBPF
Explanation: Cilium utilizes the Linux kernel's eBPF (extended Berkeley Packet Filter) technology to provide network connectivity, security, and observability for containerized applications.
- Which of the following is NOT a main function of a service mesh?
- A) Service discovery
- B) Load balancing
- C) Providing persistent storage
- D) Encrypted communication
Show Answer
Answer: C) Providing persistent storage
Explanation: A service mesh is an infrastructure layer that manages communication between microservices, providing features such as service discovery, load balancing, encryption, authentication, authorization, and observability. Providing persistent storage is not a main function of a service mesh.
- Which service type in Kubernetes provides an alias for an external service?
- A) ClusterIP
- B) NodePort
- C) LoadBalancer
- D) ExternalName
Show Answer
Answer: D) ExternalName
Explanation: ExternalName services provide an alias for an external service. This service type maps a DNS name to the DNS name of an external service.
Short Answer Questions
- What is the name of the resource in Kubernetes that stores the IP addresses and ports of pods pointed to by a service?
Show Answer
Answer: EndpointSlice
Explanation: EndpointSlices store Service backend addresses and ports. The controller manages them for selector-based Services. Legacy Endpoints serve a similar purpose but are deprecated since v1.33.
- What is the name of the ingress controller used to provision Application Load Balancers in AWS EKS?
Show Answer
Answer: AWS Load Balancer Controller
Explanation: AWS Load Balancer Controller is an ingress controller used to provision Application Load Balancers in AWS EKS. This controller converts Kubernetes Ingress resources into AWS ALBs.
- What is the name of the pod DNS policy in Kubernetes that inherits the DNS settings of the node where the pod is running?
Show Answer
Answer: Default
Explanation: The Default DNS policy inherits the DNS settings of the node where the pod is running. This means using the node's /etc/resolv.conf file as-is for the pod.
- What is the name of Cilium's observability layer that uses eBPF to monitor network flows and troubleshoot issues?
Show Answer
Answer: Hubble
Explanation: Hubble is Cilium's observability layer that uses eBPF to monitor network flows and troubleshoot issues. Hubble provides features such as network flow monitoring, service dependency mapping, security observation, performance analysis, and troubleshooting.
- What is the name of the resource in Kubernetes that is a scalable alternative to Endpoints, providing better performance in large clusters?
Show Answer
Answer: EndpointSlice
Explanation: EndpointSlice is a scalable alternative to Endpoints, providing better performance in large clusters. EndpointSlice improves performance for large services by splitting endpoints into multiple slices for management.
Advanced Questions
- Explain how a service mesh (e.g., Istio) is used to manage communication between microservices in Kubernetes and its benefits.
Show Answer
Answer:
A service mesh is an infrastructure layer that manages communication between microservices, implemented in the following ways:
Sidecar pattern: Proxy containers (e.g., Envoy) are injected into each pod to intercept and control all network traffic.
Control plane: A centralized management component (e.g., Istio's istiod) configures and manages all sidecar proxies.
Traffic management:
apiVersion: networking.istio.io/v1
kind: VirtualService
metadata:
name: reviews
spec:
hosts:
- reviews
http:
- match:
- headers:
end-user:
exact: jason
route:
- destination:
host: reviews
subset: v2
- route:
- destination:
host: reviews
subset: v1- Security policies:
apiVersion: security.istio.io/v1
kind: AuthorizationPolicy
metadata:
name: httpbin
namespace: foo
spec:
selector:
matchLabels:
app: httpbin
action: ALLOW
rules:
- from:
- source:
principals: ["cluster.local/ns/default/sa/sleep"]
to:
- operation:
methods: ["GET"]
paths: ["/info*"]Benefits:
Traffic management: Supports advanced routing, load balancing, traffic splitting, canary deployments, and more.
Security: Provides mutual TLS (mTLS) encryption, authentication, and authorization between services.
Observability: Monitors communication between services through distributed tracing, metric collection, and logging.
Resilience: Improves system resilience through circuit breakers, retries, timeouts, and fault injection.
Policy enforcement: Can apply policies such as rate limiting, quotas, and access control.
Platform independence: These features can be added without changing application code.
Service meshes abstract the complexity of inter-service communication in complex microservice architectures, allowing developers to focus on business logic.
- Explain the benefits that Cilium's eBPF technology provides compared to traditional networking approaches (e.g., iptables), and suggest ways to optimize Cilium in AWS EKS.
Show Answer
Answer:
Benefits of Cilium's eBPF Technology:
Performance: eBPF runs directly within the kernel to optimize packet processing paths, providing much higher performance than iptables. In particular, while iptables performs linear searches when there are many rules, eBPF can use efficient data structures like hash tables.
Scalability: eBPF maintains consistent performance even in large clusters. iptables performance degrades rapidly as the number of rules increases.
Programmability: eBPF can be programmed in a C-like language, enabling implementation of complex networking logic. iptables only supports a limited set of rules.
Observability: eBPF can collect detailed metrics about network flows, useful for troubleshooting and performance optimization.
L7 policy: Cilium combines eBPF with userspace Envoy for HTTP/L7 inspection; this work is not entirely in kernel eBPF.
Ways to Optimize Cilium in AWS EKS:
Select IPAM and routing deliberately: AWS VPC CNI chaining keeps
aws-node; Cilium ENI mode requires EC2 permissions and a controlled transition of ENI ownership. Use the chapter's reviewed Helm values and official installation procedure.Size node networking: Check actual instance ENI/IP limits, subnet capacity, and Pod density; an instance family name alone is not sufficient.
Measure before tuning: Current Helm values use
routingMode: nativeand booleankubeProxyReplacement: truewhere appropriate, not removedtunnel=disabledorkubeProxyReplacement=strict. Replacement also needs API-server connectivity and a migration plan. DSR and XDP require compatible AWS networking, NIC/kernel support, and measured validation; enabling every setting is not a universal optimization recipe.Enable Hubble:
cilium hubble enable --uiEnable Hubble to provide network flow monitoring and troubleshooting capabilities.
Cross-cluster connectivity: Configure Cilium Cluster Mesh to provide seamless networking between multiple EKS clusters.
Monitoring integration: Set up Prometheus and Grafana to collect and visualize Cilium metrics.
These optimizations can maximize Cilium's performance, security, and observability in AWS EKS.
Conclusion
Through this quiz, you tested your understanding of Kubernetes services and networking. Concepts covered include service types, Ingress, network policies, service discovery, CoreDNS, and Cilium. Understanding and utilizing these concepts enables you to build secure and scalable Kubernetes applications.