What is the main role of networking in Kubernetes?
Networking in Kubernetes connects containers, pods, and services so they can communicate and work together smoothly.
Click to reveal answer
beginner
Why does Kubernetes assign each pod its own IP address?
Each pod gets its own IP so containers inside can talk directly without needing special translation or ports, making communication simple and reliable.
Click to reveal answer
intermediate
How does Kubernetes networking help with scaling applications?
Kubernetes networking automatically manages connections as pods are added or removed, so apps keep working well even when they grow or shrink.
Click to reveal answer
beginner
What is a Service in Kubernetes networking?
A Service is like a stable address that groups pods together, so other parts of the app can find and talk to them easily, even if pods change.
Click to reveal answer
intermediate
Why is network security important in Kubernetes?
Network security keeps data safe and controls who can talk to what, protecting apps from attacks and mistakes.
Click to reveal answer
What does Kubernetes assign to each pod to enable communication?
ANo network identity
BA shared IP address
CA hostname only
DA unique IP address
✗ Incorrect
Each pod gets a unique IP address to allow direct communication without extra translation.
What is the purpose of a Kubernetes Service?
ATo monitor pod health
BTo provide a stable network endpoint for a group of pods
CTo schedule pods on nodes
DTo store data persistently
✗ Incorrect
A Service gives a stable address to access pods, even if pods change over time.
How does Kubernetes networking support scaling?
ABy automatically updating connections as pods change
BBy limiting the number of pods
CBy assigning static IPs to nodes only
DBy disabling communication between pods
✗ Incorrect
Kubernetes networking adjusts connections automatically when pods are added or removed.
Why is network security important in Kubernetes?
ATo reduce storage costs
BTo speed up pod creation
CTo protect data and control access between components
DTo increase CPU usage
✗ Incorrect
Network security protects data and controls who can communicate within the cluster.
Which of these is NOT a reason why Kubernetes networking matters?
AIt schedules pods on nodes
BIt enables communication between containers
CIt manages pod IP addresses
DIt supports service discovery
✗ Incorrect
Scheduling pods is handled by Kubernetes scheduler, not networking.
Explain why Kubernetes networking is essential for application communication and scaling.
Think about how apps talk to each other and grow.
You got /4 concepts.
Describe the role of network security in Kubernetes and why it matters.
Consider what could happen without network security.
You got /4 concepts.
Practice
(1/5)
1. Why is networking important in Kubernetes clusters?
easy
A. It stores data persistently for applications.
B. It schedules Pods to nodes automatically.
C. It manages user authentication and permissions.
D. It connects different parts of applications and users.
Solution
Step 1: Understand Kubernetes networking role
Kubernetes networking allows communication between application parts and external users.
Step 2: Differentiate networking from other functions
Storage, authentication, and scheduling are handled by other Kubernetes components, not networking.
Final Answer:
It connects different parts of applications and users. -> Option D
Quick Check:
Networking = Connect apps and users [OK]
Hint: Networking links app parts and users in Kubernetes [OK]
Common Mistakes:
Confusing networking with storage
Mixing networking with authentication
Thinking scheduling is networking
2. Which of the following is the correct way to expose a Pod using a Service in Kubernetes?
easy
A. kubectl service create mypod --port=80
B. kubectl expose pod mypod --port=80 --target-port=8080 --type=ClusterIP
C. kubectl create pod mypod --expose --port=80
D. kubectl expose service mypod --port=80
Solution
Step 1: Identify correct command to expose a Pod
The command 'kubectl expose pod' is used to expose a Pod as a Service with specified ports and type.
Step 2: Check syntax correctness
kubectl expose pod mypod --port=80 --target-port=8080 --type=ClusterIP uses correct syntax with --port, --target-port, and --type flags. Other options use invalid commands or flags.
Final Answer:
kubectl expose pod mypod --port=80 --target-port=8080 --type=ClusterIP -> Option B
Quick Check:
Expose Pod = kubectl expose pod [OK]
Hint: Use 'kubectl expose pod' with ports and type [OK]
Common Mistakes:
Using 'kubectl create pod' to expose
Trying to expose a service instead of a pod
Missing required flags like --port
3. Given the following NetworkPolicy YAML snippet, what traffic is allowed?
A. Only frontend Pods can access backend Pods on TCP port 80.
B. No traffic is allowed to backend Pods.
C. Backend Pods can access frontend Pods on TCP port 80.
D. All Pods can access backend Pods on any port.
Solution
Step 1: Analyze podSelector and ingress rules
The policy selects Pods with label role=backend and allows ingress only from Pods with role=frontend on TCP port 80.
Step 2: Understand traffic direction and port restrictions
Only traffic from frontend Pods to backend Pods on TCP port 80 is allowed; other traffic is denied.
Final Answer:
Only frontend Pods can access backend Pods on TCP port 80. -> Option A
Quick Check:
NetworkPolicy limits ingress to frontend on port 80 [OK]
Hint: Check podSelector and ingress from labels and ports [OK]
Common Mistakes:
Assuming all Pods can access backend
Confusing ingress with egress
Ignoring port restrictions
4. You created a NetworkPolicy to allow traffic only from Pods with label app=frontend to Pods with label app=backend. However, backend Pods are still accessible from other Pods. What is the likely cause?
medium
A. The NetworkPolicy is applied in the wrong namespace.
B. The NetworkPolicy is missing a podSelector, so it applies to all Pods.
C. The backend Pods do not have the label app=backend.
D. The NetworkPolicy does not specify any ingress rules, so all traffic is allowed.
Solution
Step 1: Verify label matching on backend Pods
If backend Pods lack the label app=backend, the NetworkPolicy does not select them, so it does not restrict their traffic.
Step 2: Check other possible causes
NetworkPolicy without ingress rules denies all traffic, missing podSelector applies to all Pods, wrong namespace means policy doesn't affect target Pods.
Final Answer:
The backend Pods do not have the label app=backend. -> Option C
Quick Check:
Labels must match for NetworkPolicy to apply [OK]
Hint: Check Pod labels match NetworkPolicy selectors [OK]
Common Mistakes:
Assuming NetworkPolicy applies without matching labels
Ignoring namespace differences
Thinking missing ingress means allow all
5. You want to ensure that your multi-tier app in Kubernetes allows only the frontend Pods to communicate with backend Pods, and backend Pods to communicate with database Pods, but no other traffic. Which combination of Kubernetes networking features should you use?
hard
A. Use Services to expose Pods and NetworkPolicies to restrict traffic between tiers.
B. Use only Services with type LoadBalancer for all Pods.
C. Use NetworkPolicies to expose Pods externally and Services for internal traffic.
D. Use Ingress resources to control Pod-to-Pod communication.
Solution
Step 1: Understand role of Services and NetworkPolicies
Services provide stable network endpoints to reach Pods, while NetworkPolicies control which Pods can communicate with each other.
Step 2: Apply correct features for multi-tier communication
Use Services to expose frontend, backend, and database Pods internally. Use NetworkPolicies to restrict traffic so only allowed Pods communicate.
Final Answer:
Use Services to expose Pods and NetworkPolicies to restrict traffic between tiers. -> Option A