Bird
0
0

Which YAML snippet correctly specifies a cloud-native Kafka broker deployment on Kubernetes?

easy📝 Syntax Q3 of 15
Kafka - Kubernetes and Cloud Deployment
Which YAML snippet correctly specifies a cloud-native Kafka broker deployment on Kubernetes?
A<pre>apiVersion: apps/v1 kind: StatefulSet metadata: name: kafka-broker spec: serviceName: kafka replicas: 3 selector: matchLabels: app: kafka template: metadata: labels: app: kafka spec: containers: - name: kafka image: kafka:latest</pre>
B<pre>apiVersion: v1 kind: Pod metadata: name: kafka-broker spec: containers: - name: kafka image: kafka:latest</pre>
C<pre>apiVersion: batch/v1 kind: Job metadata: name: kafka-broker spec: template: spec: containers: - name: kafka image: kafka:latest restartPolicy: Never</pre>
D<pre>apiVersion: apps/v1 kind: Deployment metadata: name: kafka-broker spec: replicas: 1 template: spec: containers: - name: kafka image: kafka:latest</pre>
Step-by-Step Solution
Solution:
  1. Step 1: Identify correct Kubernetes resource for Kafka brokers

    Kafka brokers require stable network IDs and persistent storage, best handled by StatefulSets.
  2. Step 2: Analyze options

    apiVersion: apps/v1
    kind: StatefulSet
    metadata:
      name: kafka-broker
    spec:
      serviceName: kafka
      replicas: 3
      selector:
        matchLabels:
          app: kafka
      template:
        metadata:
          labels:
            app: kafka
        spec:
          containers:
          - name: kafka
            image: kafka:latest
    uses StatefulSet with proper selectors and labels, suitable for Kafka. Options B and D use Pod and Deployment, which lack stable identities.
    apiVersion: batch/v1
    kind: Job
    metadata:
      name: kafka-broker
    spec:
      template:
        spec:
          containers:
          - name: kafka
            image: kafka:latest
          restartPolicy: Never
    uses Job, which is for batch tasks, not long-running services.
  3. Final Answer:

    apiVersion: apps/v1
    kind: StatefulSet
    metadata:
      name: kafka-broker
    spec:
      serviceName: kafka
      replicas: 3
      selector:
        matchLabels:
          app: kafka
      template:
        metadata:
          labels:
            app: kafka
        spec:
          containers:
          - name: kafka
            image: kafka:latest
    correctly defines a cloud-native Kafka broker deployment.
  4. Quick Check:

    Kafka brokers need StatefulSets for stable identities [OK]
Quick Trick: Kafka brokers need StatefulSets, not Jobs or plain Pods [OK]
Common Mistakes:
MISTAKES
  • Using Job or Pod instead of StatefulSet for Kafka brokers
  • Omitting selector or labels in StatefulSet spec
  • Using Deployment which lacks stable network IDs

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More Kafka Quizzes