Bird
Raised Fist0
Kubernetesdevops~5 mins

ExternalName service type in Kubernetes - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the purpose of the ExternalName service type in Kubernetes?
ExternalName service type maps a Kubernetes service to an external DNS name. It allows pods to access services outside the cluster using a simple service name.
Click to reveal answer
intermediate
How does Kubernetes resolve an ExternalName service?
Kubernetes returns a CNAME record pointing to the external DNS name specified in the ExternalName service. The client then resolves this DNS name outside the cluster.
Click to reveal answer
beginner
Which field must be specified in the ExternalName service manifest?
The 'externalName' field must be set to the DNS name you want to map to, for example 'my.database.example.com'.
Click to reveal answer
intermediate
Can ExternalName services be used with selectors or endpoints?
No, ExternalName services do not use selectors or endpoints because they do not manage pods. They only provide DNS mapping to an external name.
Click to reveal answer
beginner
Give an example YAML snippet for an ExternalName service.
apiVersion: v1 kind: Service metadata: name: my-external-service spec: type: ExternalName externalName: example.com
Click to reveal answer
What does the ExternalName service type in Kubernetes do?
AManages endpoints for internal services
BCreates a load balancer inside the cluster
CExposes pods directly via IP addresses
DMaps a service to an external DNS name
Which field is required in an ExternalName service manifest?
AclusterIP
BexternalName
Cselector
Dports
Can ExternalName services use selectors to find pods?
ANo, ExternalName services do not use selectors
BYes, selectors are mandatory
COnly if the service type is ClusterIP
DOnly if endpoints are manually created
What DNS record type does Kubernetes return for an ExternalName service?
ATXT record
BA record
CCNAME record
DMX record
Which Kubernetes service type would you use to access an external database by DNS name?
AExternalName
BNodePort
CClusterIP
DLoadBalancer
Explain how an ExternalName service works in Kubernetes and when you would use it.
Think about how Kubernetes lets pods reach outside services using DNS.
You got /4 concepts.
    Describe the key differences between ExternalName and other Kubernetes service types like ClusterIP or LoadBalancer.
    Focus on how ExternalName handles service discovery differently.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of a Kubernetes ExternalName service?
      easy
      A. To map a service to an external DNS name outside the cluster
      B. To expose a pod's IP address inside the cluster
      C. To load balance traffic between pods
      D. To create a persistent volume claim

      Solution

      1. Step 1: Understand ExternalName service role

        An ExternalName service maps a Kubernetes service to an external DNS name, allowing pods to access external services by a simple name.
      2. Step 2: Compare with other service types

        Other service types like ClusterIP or LoadBalancer expose pods or balance traffic, but ExternalName specifically maps to external DNS.
      3. Final Answer:

        To map a service to an external DNS name outside the cluster -> Option A
      4. Quick Check:

        ExternalName = external DNS mapping [OK]
      Hint: ExternalName points to DNS, not IP or pods [OK]
      Common Mistakes:
      • Confusing ExternalName with ClusterIP or LoadBalancer
      • Thinking it manages pod IPs
      • Assuming it handles ports inside the cluster
      2. Which of the following is the correct minimal YAML snippet to create an ExternalName service named my-external pointing to example.com?
      easy
      A. apiVersion: v1\nkind: Service\nmetadata:\n name: my-external\nspec:\n type: LoadBalancer\n externalName: example.com
      B. apiVersion: v1\nkind: Service\nmetadata:\n name: my-external\nspec:\n type: ExternalName\n externalName: example.com
      C. apiVersion: v1\nkind: Service\nmetadata:\n name: my-external\nspec:\n type: ExternalName\n clusterIP: example.com
      D. apiVersion: v1\nkind: Service\nmetadata:\n name: my-external\nspec:\n type: ClusterIP\n externalName: example.com

      Solution

      1. Step 1: Identify correct service type and field

        ExternalName service requires type: ExternalName and externalName field with the DNS name.
      2. Step 2: Check YAML correctness

        apiVersion: v1\nkind: Service\nmetadata:\n name: my-external\nspec:\n type: ExternalName\n externalName: example.com correctly sets type: ExternalName and externalName: example.com. Other options use wrong types or fields.
      3. Final Answer:

        YAML with type ExternalName and externalName: example.com -> Option B
      4. Quick Check:

        ExternalName YAML = type ExternalName + externalName field [OK]
      Hint: ExternalName needs type and externalName fields exactly [OK]
      Common Mistakes:
      • Using ClusterIP or LoadBalancer instead of ExternalName
      • Setting clusterIP instead of externalName
      • Omitting the externalName field
      3. Given this ExternalName service YAML:
      apiVersion: v1
      kind: Service
      metadata:
        name: ext-service
      spec:
        type: ExternalName
        externalName: api.example.com

      What happens when a pod inside the cluster runs nslookup ext-service?
      medium
      A. It returns the cluster IP of ext-service
      B. It returns the IP address of the pod running the service
      C. It returns an error because ExternalName services have no IP
      D. It returns the IP address of api.example.com

      Solution

      1. Step 1: Understand DNS resolution for ExternalName

        ExternalName services create a DNS CNAME record pointing to the externalName value, so queries resolve to that external DNS.
      2. Step 2: Analyze nslookup behavior

        Running nslookup ext-service returns the IP address of api.example.com by resolving the CNAME.
      3. Final Answer:

        It returns the IP address of api.example.com -> Option D
      4. Quick Check:

        ExternalName DNS = external DNS IP [OK]
      Hint: ExternalName returns external DNS IP on lookup [OK]
      Common Mistakes:
      • Expecting pod or cluster IP for ExternalName
      • Thinking ExternalName has its own IP
      • Assuming nslookup fails for ExternalName
      4. You created this ExternalName service YAML:
      apiVersion: v1
      kind: Service
      metadata:
        name: ext-svc
      spec:
        type: ExternalName
        externalName: 123.45.67.89

      Why does this configuration fail?
      medium
      A. externalName field is missing
      B. type ExternalName cannot be used with metadata
      C. externalName must be a DNS name, not an IP address
      D. Service type must be ClusterIP for IP addresses

      Solution

      1. Step 1: Check externalName field requirements

        The externalName must be a valid DNS name, not an IP address.
      2. Step 2: Identify error cause

        Using an IP address like 123.45.67.89 in externalName is invalid and causes failure.
      3. Final Answer:

        externalName must be a DNS name, not an IP address -> Option C
      4. Quick Check:

        externalName = DNS name only [OK]
      Hint: externalName must be a DNS name, not IP [OK]
      Common Mistakes:
      • Using IP instead of DNS in externalName
      • Confusing service type rules
      • Omitting externalName field
      5. You want pods in your cluster to access an external database at db.external.com using the service name external-db. You also want to ensure no IP or port is configured inside the cluster. Which is the best way to configure this?
      hard
      A. Create an ExternalName service named external-db with externalName: db.external.com
      B. Create a ClusterIP service named external-db with selector matching database pods
      C. Create a LoadBalancer service named external-db pointing to db.external.com IP
      D. Create a NodePort service named external-db with targetPort set to database port

      Solution

      1. Step 1: Understand requirement for no IP or port inside cluster

        ExternalName service maps a service name to an external DNS without IP or port configuration inside the cluster.
      2. Step 2: Match requirement with service types

        ClusterIP, LoadBalancer, and NodePort require IPs or ports inside the cluster, so they don't fit the requirement.
      3. Final Answer:

        Create an ExternalName service named external-db with externalName: db.external.com -> Option A
      4. Quick Check:

        ExternalName = external DNS, no IP/port config [OK]
      Hint: Use ExternalName for external DNS without cluster IP/port [OK]
      Common Mistakes:
      • Using ClusterIP or LoadBalancer for external DNS
      • Configuring ports inside the cluster unnecessarily
      • Not using ExternalName for external services
      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