Bird
Raised Fist0
Kubernetesdevops~10 mins

Container Network Interface (CNI) in Kubernetes - Interactive Code Practice

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

Complete the code to specify the CNI plugin in a Kubernetes pod network configuration.

Kubernetes
cniVersion: "0.3.1"
name: my-network
plugins:
  - type: [1]
Drag options to blanks, or click blank then click option'
Abridge
Bdocker
Chost
Dproxy
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'docker' which is not a CNI plugin type
Using 'host' which is a network mode, not a plugin type
2fill in blank
medium

Complete the code to assign IP addresses dynamically using the CNI IPAM plugin.

Kubernetes
{
  "cniVersion": "0.3.1",
  "name": "my-network",
  "plugins": [
    {
      "type": "bridge",
      "ipam": {
        "type": [1]
      }
    }
  ]
}
Drag options to blanks, or click blank then click option'
Ahost-local
Bdhcp
Cstatic
Dmanual
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'static' which requires manual IP assignment
Using 'dhcp' which is not commonly used in Kubernetes CNI
3fill in blank
hard

Fix the error in the CNI configuration by completing the missing field for the bridge name.

Kubernetes
{
  "cniVersion": "0.3.1",
  "name": "my-network",
  "plugins": [
    {
      "type": "bridge",
      "bridge": [1],
      "ipam": {
        "type": "host-local"
      }
    }
  ]
}
Drag options to blanks, or click blank then click option'
Aeth0
Bcni0
C"eth0"
D"cni0"
Attempts:
3 left
💡 Hint
Common Mistakes
Omitting quotes causing JSON syntax errors
Using interface names like 'eth0' instead of bridge names
4fill in blank
hard

Fill both blanks to configure a CNI plugin with a bridge name and subnet for IPAM.

Kubernetes
{
  "cniVersion": "0.3.1",
  "name": "my-network",
  "plugins": [
    {
      "type": "bridge",
      "bridge": [1],
      "ipam": {
        "type": "host-local",
        "subnet": [2]
      }
    }
  ]
}
Drag options to blanks, or click blank then click option'
A"br0"
B"192.168.1.0/24"
C"10.1.0.0/16"
D"eth1"
Attempts:
3 left
💡 Hint
Common Mistakes
Using interface names instead of bridge names
Providing subnet without quotes causing JSON errors
5fill in blank
hard

Fill all three blanks to create a CNI config with bridge type, IPAM subnet, and gateway.

Kubernetes
{
  "cniVersion": "0.3.1",
  "name": "custom-net",
  "plugins": [
    {
      "type": [1],
      "bridge": [2],
      "ipam": {
        "type": "host-local",
        "subnet": [3],
        "gateway": "192.168.100.1"
      }
    }
  ]
}
Drag options to blanks, or click blank then click option'
A"bridge"
B"br-custom"
C"192.168.100.0/24"
D"eth0"
Attempts:
3 left
💡 Hint
Common Mistakes
Using unquoted strings causing JSON errors
Confusing interface names with bridge names

Practice

(1/5)
1. What is the main purpose of the Container Network Interface (CNI) in Kubernetes?
easy
A. To manage storage volumes for containers
B. To provide IP addresses and networking for pods
C. To schedule pods on nodes
D. To monitor container resource usage

Solution

  1. Step 1: Understand CNI role in Kubernetes

    CNI is responsible for setting up networking so pods can communicate.
  2. Step 2: Identify correct function

    Providing IP addresses and network connectivity to pods is the core function of CNI.
  3. Final Answer:

    To provide IP addresses and networking for pods -> Option B
  4. Quick Check:

    CNI = Pod networking [OK]
Hint: CNI is about pod networking, not storage or scheduling [OK]
Common Mistakes:
  • Confusing CNI with storage management
  • Thinking CNI schedules pods
  • Assuming CNI monitors resources
2. Which of the following is a valid CNI configuration file format?
easy
A. XML
B. CSV
C. INI
D. JSON

Solution

  1. Step 1: Recall CNI config formats

    CNI plugins use JSON or YAML files to configure networking.
  2. Step 2: Identify valid format

    JSON is the standard format for CNI configuration files.
  3. Final Answer:

    JSON -> Option D
  4. Quick Check:

    CNI config = JSON [OK]
Hint: CNI configs are JSON or YAML, not XML or INI [OK]
Common Mistakes:
  • Choosing XML as config format
  • Confusing INI or CSV with CNI config
  • Not knowing CNI uses JSON
3. Given this CNI config snippet:
{
  "cniVersion": "0.4.0",
  "name": "mynet",
  "type": "bridge",
  "bridge": "cni0",
  "ipMasq": true,
  "ipam": {
    "type": "host-local",
    "subnet": "10.22.0.0/16"
  }
}

What IP subnet will pods get addresses from?
medium
A. 172.16.0.0/12
B. 192.168.1.0/24
C. 10.22.0.0/16
D. None, IPs are assigned dynamically

Solution

  1. Step 1: Locate subnet in config

    The subnet is specified inside the "ipam" section as "10.22.0.0/16".
  2. Step 2: Understand IP assignment

    Pods will get IPs from the defined subnet range in the config.
  3. Final Answer:

    10.22.0.0/16 -> Option C
  4. Quick Check:

    Subnet in ipam = 10.22.0.0/16 [OK]
Hint: Look inside "ipam" for subnet to find pod IP range [OK]
Common Mistakes:
  • Ignoring the subnet field
  • Choosing default Kubernetes pod subnet
  • Thinking IPs are random without subnet
4. You installed a CNI plugin but pods cannot communicate across nodes. What is a likely cause?
medium
A. CNI config file missing or incorrect
B. Pods have no CPU limits set
C. Kubernetes API server is down
D. Node disk space is full

Solution

  1. Step 1: Analyze pod network failure

    Pods not communicating across nodes usually means network setup is broken.
  2. Step 2: Check CNI config

    If the CNI config file is missing or wrong, networking won't work properly.
  3. Final Answer:

    CNI config file missing or incorrect -> Option A
  4. Quick Check:

    Network issues = CNI config problem [OK]
Hint: Check CNI config file first for network issues [OK]
Common Mistakes:
  • Blaming CPU limits for network problems
  • Assuming API server affects pod networking directly
  • Ignoring CNI config correctness
5. You want to deploy a new CNI plugin that supports network policies and IP address management. Which step is NOT required?
hard
A. Restart the Kubernetes API server
B. Create a CNI configuration file in /etc/cni/net.d/
C. Install the CNI plugin binaries on all nodes
D. Ensure kubelet is configured to use the new CNI

Solution

  1. Step 1: Understand CNI plugin deployment steps

    You must install plugin binaries, add config files, and configure kubelet to use it.
  2. Step 2: Identify unnecessary step

    Restarting the Kubernetes API server is not needed for CNI plugin changes.
  3. Final Answer:

    Restart the Kubernetes API server -> Option A
  4. Quick Check:

    API server restart NOT needed for CNI install [OK]
Hint: API server restart not needed when changing CNI [OK]
Common Mistakes:
  • Thinking API server restart is required
  • Forgetting to install plugin binaries
  • Not placing config in correct directory
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