Bird
Raised Fist0
Kubernetesdevops~5 mins

Service discovery via DNS in Kubernetes - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is service discovery in Kubernetes?
Service discovery is the process that allows applications to find and communicate with each other automatically within a Kubernetes cluster.
Click to reveal answer
beginner
How does Kubernetes use DNS for service discovery?
Kubernetes automatically creates DNS entries for services, so pods can find services by their DNS names instead of IP addresses.
Click to reveal answer
intermediate
What is the DNS name format for a Kubernetes service?
The DNS name format is .<namespace>.svc.cluster.local, where is the service's name and <namespace> is its namespace.
Click to reveal answer
intermediate
What role does CoreDNS play in Kubernetes service discovery?
CoreDNS is the DNS server inside Kubernetes that answers DNS queries for services and pods, enabling service discovery via DNS.
Click to reveal answer
beginner
Why is DNS-based service discovery preferred over hardcoding IP addresses?
Because IP addresses can change when pods restart or move, DNS names provide a stable way to find services without manual updates.
Click to reveal answer
What is the default DNS suffix for services in Kubernetes?
Aservice.local
Bcluster.svc.local
Ckube.local
Dsvc.cluster.local
Which Kubernetes component handles DNS queries for service discovery?
Akube-scheduler
BCoreDNS
Cetcd
Dkube-proxy
How can a pod find a service named 'web' in the 'default' namespace?
Aweb.svc.default.cluster.local
Bdefault.web.svc.cluster.local
Cweb.default.svc.cluster.local
Dsvc.web.default.cluster.local
Why should you avoid hardcoding service IP addresses in your application?
AIP addresses can change when pods restart or move
BIP addresses are always static in Kubernetes
CDNS is slower than IP addresses
DHardcoding IPs improves scalability
What happens if CoreDNS is not running in a Kubernetes cluster?
AService discovery via DNS will fail
BPods will still resolve services by IP
CServices will be discovered faster
DNothing changes
Explain how DNS-based service discovery works in Kubernetes.
Think about how pods find each other without knowing IP addresses.
You got /4 concepts.
    Why is using DNS for service discovery better than using fixed IP addresses in Kubernetes?
    Consider what happens when pods restart or move.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does Kubernetes use to help applications find each other without hardcoding IP addresses?
      easy
      A. Manual IP configuration
      B. DNS-based service discovery
      C. Static routing tables
      D. Load balancer IPs only

      Solution

      1. Step 1: Understand service discovery basics

        Kubernetes provides a way for apps to find each other by name instead of IP, which can change.
      2. Step 2: Identify the mechanism Kubernetes uses

        Kubernetes automatically creates DNS entries for services, enabling DNS-based discovery.
      3. Final Answer:

        DNS-based service discovery -> Option B
      4. Quick Check:

        Service discovery = DNS-based [OK]
      Hint: Kubernetes uses DNS names, not fixed IPs, for service discovery [OK]
      Common Mistakes:
      • Thinking IPs are fixed and manually configured
      • Confusing load balancers with service discovery
      • Assuming static routing is used
      2. Which of the following is the correct DNS name format to access a Kubernetes service named myapp in namespace prod?
      easy
      A. prod.myapp.svc.cluster.local
      B. myapp.svc.prod.cluster.local
      C. myapp.prod.svc.cluster.local
      D. svc.myapp.prod.cluster.local

      Solution

      1. Step 1: Recall Kubernetes DNS naming convention

        The format is <service>.<namespace>.svc.cluster.local.
      2. Step 2: Match the service and namespace

        For service myapp in namespace prod, the DNS name is myapp.prod.svc.cluster.local.
      3. Final Answer:

        myapp.prod.svc.cluster.local -> Option C
      4. Quick Check:

        Service.Namespace.svc.cluster.local = B [OK]
      Hint: Service DNS = service.namespace.svc.cluster.local [OK]
      Common Mistakes:
      • Swapping service and namespace order
      • Omitting 'svc' in the DNS name
      • Using incorrect domain suffix
      3. Given a pod in namespace dev trying to reach a service named backend, what DNS name should the pod use to connect to the service?
      medium
      A. backend.dev.svc.cluster.local
      B. backend.svc.dev.cluster.local
      C. dev.backend.svc.cluster.local
      D. backend.dev.cluster.local

      Solution

      1. Step 1: Understand the DNS naming pattern

        Kubernetes services are accessible via service.namespace.svc.cluster.local.
      2. Step 2: Apply the pattern for service backend in namespace dev

        The correct DNS name is backend.dev.svc.cluster.local.
      3. Final Answer:

        backend.dev.svc.cluster.local -> Option A
      4. Quick Check:

        Service.Namespace.svc.cluster.local = A [OK]
      Hint: Use service.namespace.svc.cluster.local for full DNS name [OK]
      Common Mistakes:
      • Mixing up namespace and service order
      • Leaving out 'svc' in the DNS name
      • Using incomplete domain suffix
      4. A pod tries to connect to db.prod.svc.cluster.local but fails. Which of these is the most likely cause?
      medium
      A. The pod is using the IP address instead of DNS name
      B. The pod is in the same namespace as the service
      C. The cluster DNS is disabled but service exists
      D. The service db does not exist in namespace prod

      Solution

      1. Step 1: Check if the service exists in the namespace

        If the service db is missing in prod, DNS lookup fails.
      2. Step 2: Consider DNS and pod namespace

        Using DNS name requires the service to exist; pod namespace or IP usage doesn't cause DNS failure.
      3. Final Answer:

        The service db does not exist in namespace prod -> Option D
      4. Quick Check:

        Missing service = DNS failure [OK]
      Hint: Check service existence in namespace if DNS lookup fails [OK]
      Common Mistakes:
      • Assuming DNS is always enabled
      • Confusing pod namespace with service namespace
      • Thinking IP use breaks DNS resolution
      5. You have a multi-namespace Kubernetes cluster with services named api in namespaces dev and prod. How can a pod in dev namespace connect to the api service in prod namespace using DNS?
      hard
      A. Use the full DNS name api.prod.svc.cluster.local
      B. Use just api since it resolves across namespaces
      C. Use api.dev.svc.cluster.local and specify namespace in config
      D. Use the IP address of the prod service directly

      Solution

      1. Step 1: Understand cross-namespace DNS resolution

        Within a namespace, service names resolve locally; cross-namespace requires full DNS name.
      2. Step 2: Apply full DNS name for cross-namespace access

        To reach api in prod from dev, use api.prod.svc.cluster.local.
      3. Final Answer:

        Use the full DNS name api.prod.svc.cluster.local -> Option A
      4. Quick Check:

        Cross-namespace = full DNS name [OK]
      Hint: Cross-namespace access needs full DNS name service.namespace.svc.cluster.local [OK]
      Common Mistakes:
      • Assuming service name alone resolves across namespaces
      • Using wrong namespace in DNS name
      • Relying on IP addresses which can change
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard