Bird
Raised Fist0
Kubernetesdevops~20 mins

TCP probe configuration in Kubernetes - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
TCP Probe Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
💻 Command Output
intermediate
2:00remaining
TCP Probe Success Check
Given this Kubernetes pod spec snippet with a TCP liveness probe, what will be the status of the pod if the TCP port is open and responding?
Kubernetes
livenessProbe:
  tcpSocket:
    port: 8080
  initialDelaySeconds: 5
  periodSeconds: 10
AThe pod will be marked as healthy and continue running.
BThe pod will restart immediately due to probe failure.
CThe pod will be marked as unhealthy but not restarted.
DThe pod will enter CrashLoopBackOff state.
Attempts:
2 left
💡 Hint
Think about what a successful TCP probe means for pod health.
❓ Configuration
intermediate
2:00remaining
Correct TCP Probe YAML Syntax
Which of the following YAML snippets correctly configures a TCP readiness probe on port 3306 with an initial delay of 15 seconds?
A
readinessProbe:
  tcpSocket:
    port: 3306
  initialDelaySeconds: 15
B
readinessProbe:
  tcpSocket:
    port: "3306"
  initialDelaySeconds: 15
C
readinessProbe:
  tcpSocket:
    portNumber: 3306
  initialDelaySeconds: 15
D
readinessProbe:
  tcpSocket:
    port: 3306
  initialDelay: 15
Attempts:
2 left
💡 Hint
Check the exact field names and data types for TCP probes in Kubernetes.
❓ Troubleshoot
advanced
2:00remaining
TCP Probe Fails Despite Open Port
A pod's TCP liveness probe on port 9090 keeps failing, but manual checks confirm the port is open and accepting connections. What is the most likely cause?
AThe TCP probe port number is incorrectly specified as a string instead of an integer.
BThe pod's container is not listening on 0.0.0.0 but only on localhost.
CThe initialDelaySeconds is set too high, causing premature failures.
DThe pod's CPU limits are too low, causing probe timeouts.
Attempts:
2 left
💡 Hint
Think about network interfaces and how probes connect to pods.
🔀 Workflow
advanced
2:00remaining
Implementing a TCP Readiness Probe
You want to add a TCP readiness probe to a deployment to check port 8081 every 10 seconds with a 5-second initial delay. Which kubectl command applies this configuration correctly from a YAML file named 'probe.yaml'?
Akubectl set probe deployment/myapp --tcp=8081 --readiness --initial-delay=5 --period=10
Bkubectl create tcp-probe -f probe.yaml
Ckubectl apply -f probe.yaml
Dkubectl edit deployment myapp --tcp-readiness-port=8081
Attempts:
2 left
💡 Hint
Remember how kubectl applies YAML configurations.
✅ Best Practice
expert
2:00remaining
Best Practice for TCP Probe Configuration
Which practice is best when configuring TCP probes for a stateful application that takes time to start and open its port?
ASet initialDelaySeconds to 0 and timeoutSeconds to 1 for fast failure detection.
BUse HTTP probes instead of TCP probes for all stateful applications regardless of port availability.
CDisable probes entirely to prevent pod restarts during startup delays.
DSet a high initialDelaySeconds and a reasonable timeoutSeconds to avoid false failures during startup.
Attempts:
2 left
💡 Hint
Consider startup time and avoiding unnecessary restarts.

Practice

(1/5)
1. What is the main purpose of a TCP probe in Kubernetes?
easy
A. To check the container's memory usage
B. To monitor CPU usage of a container
C. To verify the container's file system integrity
D. To check if a container accepts TCP connections on a specified port

Solution

  1. Step 1: Understand TCP probe function

    A TCP probe tests if a container is accepting TCP connections on a specific port.
  2. Step 2: Compare with other options

    CPU, memory, and file system checks are not done by TCP probes but by other mechanisms.
  3. Final Answer:

    To check if a container accepts TCP connections on a specified port -> Option D
  4. Quick Check:

    TCP probe = connection check [OK]
Hint: TCP probe checks port connectivity, not resource usage [OK]
Common Mistakes:
  • Confusing TCP probe with CPU or memory monitoring
  • Thinking TCP probe checks file system health
  • Assuming TCP probe checks HTTP endpoints
2. Which of the following is the correct syntax to define a TCP liveness probe in a pod spec?
easy
A. livenessProbe: tcpSocket: path: "/health" initialDelaySeconds: 5 periodSeconds: 10
B. livenessProbe: httpGet: port: 8080 initialDelaySeconds: 5 periodSeconds: 10
C. livenessProbe: tcpSocket: port: 8080 initialDelaySeconds: 5 periodSeconds: 10
D. livenessProbe: exec: command: ["curl", "localhost:8080"] initialDelaySeconds: 5 periodSeconds: 10

Solution

  1. Step 1: Identify TCP probe syntax

    TCP probes use tcpSocket with a port field, no path.
  2. Step 2: Check options for correctness

    livenessProbe: tcpSocket: port: 8080 initialDelaySeconds: 5 periodSeconds: 10 uses tcpSocket with port 8080 and timing fields correctly. Others use HTTP or exec or invalid fields.
  3. Final Answer:

    livenessProbe with tcpSocket and port field -> Option C
  4. Quick Check:

    TCP probe syntax = tcpSocket + port [OK]
Hint: TCP probes use tcpSocket with port, no path [OK]
Common Mistakes:
  • Using httpGet or exec instead of tcpSocket for TCP probes
  • Adding a path field to tcpSocket (invalid)
  • Omitting port number in tcpSocket
3. Given this pod spec snippet, what will happen if the container does not accept TCP connections on port 3306?
livenessProbe:
  tcpSocket:
    port: 3306
  initialDelaySeconds: 10
  periodSeconds: 5
medium
A. Kubernetes will ignore the failure and keep the container running
B. Kubernetes will restart the container after the probe fails
C. The container will be marked ready immediately
D. The pod will be deleted permanently

Solution

  1. Step 1: Understand liveness probe behavior

    Liveness probes check if a container is alive; failure triggers a restart.
  2. Step 2: Apply to TCP probe failure

    If TCP connection on port 3306 fails, Kubernetes restarts the container to fix it.
  3. Final Answer:

    Kubernetes will restart the container after the probe fails -> Option B
  4. Quick Check:

    Liveness probe failure = container restart [OK]
Hint: Liveness probe failure triggers container restart [OK]
Common Mistakes:
  • Confusing liveness with readiness probe effects
  • Thinking pod is deleted permanently on failure
  • Assuming failure is ignored
4. You configured a TCP readiness probe but Kubernetes reports probe failures immediately after pod start. Which is the most likely cause?
medium
A. initialDelaySeconds is missing or too low, so probe runs before container is ready
B. tcpSocket port is set to 0, which is invalid
C. periodSeconds is set too high, causing delayed checks
D. readinessProbe cannot use tcpSocket, only httpGet

Solution

  1. Step 1: Analyze probe timing parameters

    Without initialDelaySeconds, probe starts immediately, possibly before container is ready.
  2. Step 2: Evaluate other options

    Port 0 is invalid but would cause different errors; periodSeconds affects frequency, not immediate failure; tcpSocket is valid for readiness probes.
  3. Final Answer:

    initialDelaySeconds is missing or too low, so probe runs before container is ready -> Option A
  4. Quick Check:

    Missing initialDelaySeconds = early probe failure [OK]
Hint: Set initialDelaySeconds to delay probe start [OK]
Common Mistakes:
  • Assuming tcpSocket is invalid for readiness probes
  • Ignoring initialDelaySeconds importance
  • Confusing periodSeconds with initialDelaySeconds
5. You want to configure a TCP readiness probe for a database container on port 5432. The container takes about 20 seconds to start accepting connections. Which configuration is best to avoid false failures?
hard
A. readinessProbe: tcpSocket: port: 5432 initialDelaySeconds: 25 periodSeconds: 10 failureThreshold: 3
B. readinessProbe: tcpSocket: port: 5432 initialDelaySeconds: 5 periodSeconds: 5 failureThreshold: 1
C. readinessProbe: tcpSocket: port: 5432 initialDelaySeconds: 0 periodSeconds: 10 failureThreshold: 5
D. readinessProbe: tcpSocket: port: 5432 initialDelaySeconds: 10 periodSeconds: 20 failureThreshold: 1

Solution

  1. Step 1: Match initialDelaySeconds to container startup time

    Container needs ~20 seconds to accept connections, so initialDelaySeconds should be at least 20 to avoid early failures.
  2. Step 2: Use periodSeconds and failureThreshold to allow retries

    Period of 10 seconds and failureThreshold of 3 means Kubernetes retries for up to 30 seconds before marking not ready, avoiding false negatives.
  3. Final Answer:

    readinessProbe with initialDelaySeconds 25, periodSeconds 10, failureThreshold 3 -> Option A
  4. Quick Check:

    Delay + retries prevent false failures [OK]
Hint: Set initialDelaySeconds > startup time, use retries [OK]
Common Mistakes:
  • Setting initialDelaySeconds too low causing false failures
  • Using failureThreshold of 1 with short delays
  • Ignoring container startup time in probe config
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