Bird
Raised Fist0
Kafkadevops~10 mins

Kafka on Kubernetes (Strimzi) - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to create a Kafka cluster using Strimzi with the correct API version.

Kafka
apiVersion: [1]
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    replicas: 3
    listeners:
      - name: plain
        port: 9092
        type: internal
        tls: false
    storage:
      type: ephemeral
  zookeeper:
    replicas: 3
    storage:
      type: ephemeral
Drag options to blanks, or click blank then click option'
Akafka.strimzi.io/v2
Bkafka.strimzi.io/v1alpha1
Ckafka.strimzi.io/v1
Dkafka.strimzi.io/v1beta2
Attempts:
3 left
💡 Hint
Common Mistakes
Using an outdated or incorrect API version causes the resource to be rejected.
Confusing the API version with Kubernetes core API versions.
2fill in blank
medium

Complete the code to specify the storage type for Kafka brokers as persistent volume claims.

Kafka
spec:
  kafka:
    storage:
      type: [1]
      size: 10Gi
Drag options to blanks, or click blank then click option'
Apersistent-claim
BpersistentVolumeClaim
Cephemeral
Dpersistent-claim-volume
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'ephemeral' when persistent storage is needed.
Incorrect casing or spelling of 'persistent-claim'.
3fill in blank
hard

Fix the error in the listener configuration to enable TLS for the external listener.

Kafka
spec:
  kafka:
    listeners:
      - name: external
        port: 9094
        type: nodeport
        tls: [1]
Drag options to blanks, or click blank then click option'
Afalse
Bno
Ctrue
Denabled
Attempts:
3 left
💡 Hint
Common Mistakes
Using strings like 'enabled' or 'no' instead of boolean true/false.
Forgetting to enable TLS when required for security.
4fill in blank
hard

Fill both blanks to configure the Kafka topic with 3 partitions and a replication factor of 2.

Kafka
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaTopic
metadata:
  name: my-topic
  labels:
    strimzi.io/cluster: my-cluster
spec:
  partitions: [1]
  replicas: [2]
Drag options to blanks, or click blank then click option'
A3
B2
C1
D5
Attempts:
3 left
💡 Hint
Common Mistakes
Setting replication factor higher than the number of brokers.
Confusing partitions with replicas.
5fill in blank
hard

Fill all three blanks to create a Kafka user with SCRAM-SHA-512 authentication and assign it to the cluster.

Kafka
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaUser
metadata:
  name: my-user
  labels:
    strimzi.io/cluster: [1]
spec:
  authentication:
    type: [2]
    [3]: {}
Drag options to blanks, or click blank then click option'
Amy-cluster
Bscram-sha-512
Dtls
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'tls' instead of SCRAM for authentication type.
Mismatching label cluster name and metadata name.
Incorrect casing in authentication keys.

Practice

(1/5)
1. What is the main purpose of Strimzi when running Kafka on Kubernetes?
easy
A. To simplify and automate Kafka cluster management on Kubernetes
B. To replace Kubernetes with a new container orchestration system
C. To provide a graphical user interface for Kafka topics
D. To convert Kafka messages into SQL queries automatically

Solution

  1. Step 1: Understand Strimzi's role

    Strimzi is designed to help run Kafka on Kubernetes by managing Kafka clusters easily.
  2. Step 2: Identify the correct purpose

    It automates pod management, storage, and recovery, simplifying Kafka operations on Kubernetes.
  3. Final Answer:

    To simplify and automate Kafka cluster management on Kubernetes -> Option A
  4. Quick Check:

    Strimzi = Kafka automation on Kubernetes [OK]
Hint: Strimzi automates Kafka on Kubernetes, not replaces or adds UI [OK]
Common Mistakes:
  • Thinking Strimzi replaces Kubernetes
  • Confusing Strimzi with Kafka UI tools
  • Assuming Strimzi converts Kafka messages to SQL
2. Which of the following is the correct command to apply a Kafka cluster YAML file named kafka-cluster.yaml using Strimzi on Kubernetes?
easy
A. kubectl run kafka-cluster.yaml
B. strimzi create kafka-cluster.yaml
C. kubectl apply -f kafka-cluster.yaml
D. kafka apply kafka-cluster.yaml

Solution

  1. Step 1: Recall how Kubernetes applies YAML files

    Kubernetes uses kubectl apply -f filename.yaml to create or update resources.
  2. Step 2: Match the command to Strimzi usage

    Strimzi uses Kubernetes resources, so applying the Kafka cluster YAML is done with kubectl apply -f.
  3. Final Answer:

    kubectl apply -f kafka-cluster.yaml -> Option C
  4. Quick Check:

    Apply YAML with kubectl apply -f [OK]
Hint: Use kubectl apply -f for YAML files on Kubernetes [OK]
Common Mistakes:
  • Using non-existent 'strimzi create' command
  • Confusing kubectl run with apply
  • Trying to use kafka CLI for Kubernetes YAML
3. Given the following YAML snippet for a Kafka cluster managed by Strimzi:
apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    replicas: 3
    storage:
      type: ephemeral
  zookeeper:
    replicas: 3
    storage:
      type: ephemeral

What will be the number of Kafka broker pods created in the Kubernetes cluster?
medium
A. 3
B. 0
C. 6
D. 1

Solution

  1. Step 1: Identify Kafka replicas in YAML

    The replicas field under kafka is set to 3, meaning 3 Kafka broker pods.
  2. Step 2: Understand pod creation

    Strimzi creates one pod per replica, so 3 Kafka broker pods will be created.
  3. Final Answer:

    3 -> Option A
  4. Quick Check:

    Kafka replicas = 3 pods [OK]
Hint: Kafka replicas number = Kafka pods count [OK]
Common Mistakes:
  • Adding Kafka and Zookeeper replicas together
  • Confusing ephemeral storage with pod count
  • Assuming default pod count if replicas missing
4. You applied a Kafka cluster YAML with 3 replicas, but only 1 Kafka pod is running. Which of the following is the most likely cause?
medium
A. Kafka storage type is set to ephemeral
B. The YAML file has replicas: 1 under Kafka section
C. Zookeeper replicas are set to 1
D. Strimzi operator is not installed or running

Solution

  1. Step 1: Check Kafka replicas in YAML

    If YAML specifies 3 replicas, pod count should be 3, so replicas: 1 is unlikely.
  2. Step 2: Consider Strimzi operator role

    Strimzi operator manages Kafka pods. If it is missing or not running, pods won't be created properly.
  3. Final Answer:

    Strimzi operator is not installed or running -> Option D
  4. Quick Check:

    Operator missing = pods not managed [OK]
Hint: Check Strimzi operator status if pods don't match replicas [OK]
Common Mistakes:
  • Blaming Zookeeper replicas for Kafka pod count
  • Thinking ephemeral storage stops pod creation
  • Assuming YAML replicas value is always correct
5. You want to update your Kafka cluster managed by Strimzi to use persistent storage instead of ephemeral. Which YAML snippet correctly changes the Kafka storage to persistent with 10Gi volume size?
hard
A. storage: type: persistent-claim size: 10Gi
B. storage: type: persistent-claim volumeClaimTemplate: spec: resources: requests: storage: 10Gi
C. storage: type: persistent size: 10Gi
D. storage: persistentVolume: size: 10Gi

Solution

  1. Step 1: Understand Strimzi persistent storage syntax

    Strimzi uses persistent-claim type with a volumeClaimTemplate to define PVC size.
  2. Step 2: Identify correct YAML structure

    storage: type: persistent-claim volumeClaimTemplate: spec: resources: requests: storage: 10Gi correctly uses volumeClaimTemplate.spec.resources.requests.storage: 10Gi to request 10Gi persistent volume.
  3. Final Answer:

    storage: type: persistent-claim volumeClaimTemplate: spec: resources: requests: storage: 10Gi -> Option B
  4. Quick Check:

    Persistent storage needs volumeClaimTemplate with size [OK]
Hint: Use volumeClaimTemplate for persistent storage size in Strimzi [OK]
Common Mistakes:
  • Using 'size' directly under storage without volumeClaimTemplate
  • Using wrong storage type like 'persistent'
  • Confusing persistentVolume with persistent-claim
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