The Missing Pod
Case 000
Solve It
CASE 000: The Missing Pod¶
Calm down and take a deep breath. You got this! Now where is my Pod?
Renzo had followed the case instructions to create his first Pod. Its only job was to run a simple program that did nothing. A command window on his laptop reported that the Pod had been created, but when he checked whether it was running, it was nowhere to be found.
$ kubectl apply -f first-pod.yaml
pod/renzo-pod created
$ kubectl get pods
No resources found in default namespace.
He looked around the Simulation Wing on the twenty-second floor of the Larimar Research Institute. This office was unlike anything Renzo had seen before. There were eight workstations arranged in two groups of four. Ping, his goldendoodle service dog, settled beneath the desk beside him. Each intern had received a laptop, an LRI-branded mug, and access to a private practice environment called a virtual cluster where they would complete their cases. Inside it, namespaces worked like named workspaces. Against the back wall, a large monitor displayed the cohort’s progress.
COHORT 4
ALLOTTED TIME: 00:10:00
TIME LEFT: 00:04:37
CURRENT STATUS
ACTIVE: 3
SUBMITTED: 5
Five people have already finished?! Renzo glanced around the room. None of the other interns looked worried, but maybe that didn’t mean anything. Everyone here seemed better at hiding it than he was.
To his left, the city skyline stretched beyond the floor-to-ceiling windows. Renzo followed an airplane moving in the distance until the glow of his laptop drew his attention back to the screen.
As Renzo raised his hand toward his mouth, Ping rested his head on Renzo’s left knee, grounding him before his nerves could carry him any further.
Renzo reread the case objective:
CASE OBJECTIVE
- Create a namespace named
renzo. - Update the
first-pod.yamlfile with the following specifications:- Name:
renzo-pod - Namespace:
renzo - Label:
cohort=4 - Image:
registry.lri.internal/idle:1.0
- Name:
- Deploy the Pod.
- Submit when the Pod reaches a
Runningstate.
Allotted time: 00:10:00 Time remaining: 00:04:00
Six minutes already gone. First day, first case, and I’m already freezing up. Come on! Mom and Dad didn’t work all those long hours so I could panic over one missing Pod. Let’s find it.
“You good, bro?” Dev asked from the desk beside him.
Dev had sounded just as relaxed when they met in the lobby two hours earlier. He had arrived wearing a dark hoodie and blue jeans. He spotted Renzo near the security desk and asked, “Are you one of the interns too?” Renzo had nodded and offered his hand just as Dev raised his fist. They both switched in midair, missed again, and finally landed the fist bump on the third awkward attempt.
“Yes, just trying to figure out where my Pod went.”
“What do you know so far?” Zara asked, sitting at the desk in front of him.
She wore a rust-colored blazer over a white shirt, dark high-waisted jeans, and white sneakers that kept the whole outfit just casual enough. She had shoulder-length curls and blonde highlights that caught the light wherever she went. Zara looked more prepared for this internship than Renzo felt.
Renzo kept his eyes on the screen. “The Pod was created successfully, but I don’t see anything in the default namespace.”
“Look over all the commands you ran and the file you updated that describes your Pod. The evidence is always in the details,” Zara said.
Renzo scrolled back through his terminal window and reviewed the commands he had run:
$ kubectl create namespace renzo
namespace/renzo created
$ vi first-pod.yaml
$ kubectl apply -f first-pod.yaml
pod/renzo-pod created
$ kubectl get pods
No resources found in default namespace.
$ kubectl get pods
No resources found in default namespace.
Renzo retraced his steps: he created the namespace successfully, edited the file, deployed the Pod, and even ran the last command twice, as if the Pod might appear the second time. Then he compared the final command with the Pod manifest, the file that described how the Pod should be configured, and it clicked.
apiVersion: v1
kind: Pod
metadata:
name: renzo-pod
namespace: renzo
labels:
cohort: "4"
spec:
containers:
- name: idle
image: registry.lri.internal/idle:1.0
Reveal
Comparing the Pod manifest with the command output made the mistake clear: the Pod was in the renzo namespace, but kubectl get pods had searched the default namespace. He had created the renzo namespace only minutes ago, but under pressure, he had forgotten to use -n to tell Kubernetes where to look.
He ran:
$ kubectl get pods -n renzo
NAME READY STATUS RESTARTS AGE
renzo-pod 1/1 Running 0 5m
“There is my Pod,” Renzo said with a sigh of relief.
“Root Cause: User error,” Dev joked.
Zara chuckled.
“I’m lazy and just look at everything in the cluster,” Dev said.
That reminded Renzo of the -A flag that lists the Pods across every namespace. He had used it in small practice clusters before, but never in an environment like LRI’s.
He ran:
$ kubectl get pods -A
NAMESPACE NAME READY STATUS RESTARTS AGE
renzo renzo-pod 1/1 Running 0 6m
kube-system calico-kube-controllers-7b78d668d9-vdz95 1/1 Running 0 77m
kube-system canal-g7msl 2/2 Running 0 77m
kube-system canal-kntbj 2/2 Running 0 77m
kube-system canal-m7l9n 2/2 Running 0 77m
kube-system coredns-57644c7996-g47ls 1/1 Running 0 77m
kube-system coredns-57644c7996-r9br6 1/1 Running 0 77m
kube-system etcd-controlplane 1/1 Running 0 77m
kube-system kube-apiserver-controlplane 1/1 Running 0 77m
kube-system kube-controller-manager-controlplane 1/1 Running 0 77m
kube-system kube-proxy-dvdvm 1/1 Running 0 77m
kube-system kube-proxy-s5pz8 1/1 Running 0 77m
kube-system kube-proxy-vwlgn 1/1 Running 0 77m
kube-system kube-scheduler-controlplane 1/1 Running 0 77m
kube-system probe-renzo-31749210-k9m2q 0/1 Completed 0 6s
Renzo leaned closer to his screen. “That’s odd. Why would there be a Pod in kube-system with my name on it? That namespace is supposed to contain Kubernetes system components. I didn’t create that.”
Before anyone could answer, he ran the command again and scanned the list.
The probe-renzo-31749210-k9m2q Pod was gone.
“Am I seeing things?”
“Nah, bro, I saw one too in my cluster,” Dev said. “It was probably part of the normal analytics our mentor mentioned. They’ll use that stuff for our checkpoint reviews.”
“Hmm. Weird, but whatever. I got my Pod running. Let me submit before my time runs out.”
Renzo leaned back in his chair and took a deep breath. Case submitted with a little over a minute to spare.
“This internship is not going to be a walk in the park,” Renzo said.
“Bro, we made it here out of thousands of applicants, didn’t we? Don’t worry,” Dev responded with a grin.
That comment brought their mentor’s morning introduction back to him. Hiro had looked as composed as he sounded. Tall and in his early thirties, he had stood before them in a dark navy blazer, a black turtleneck, and a silver pocket square. His thick black hair was swept back from his forehead. Rectangular black glasses framed his dark brown eyes, and his mustache and short beard were neatly trimmed. Despite how put-together he looked, his welcoming smile had made him seem easy to talk to.
“Good morning, everyone. I’m Hiro, and I’ll be your mentor for the next twelve weeks. You were carefully selected from thousands of applicants, and every one of you earned your place in this room. There will be two checkpoints to review your progress: one at the end of week four and one at the end of week eight. Your case activity will be recorded and included in those evaluations. Only four of you will advance to the final four weeks. At the end of week twelve, a final evaluation will determine who receives a full-time offer.”
Hiro paused, and his smile returned. “I know that sounds like a lot on your first morning. Focus on the case in front of you, learn from one another, and let your curiosity guide you. I’m glad you’re here.”
The memory made Renzo even more anxious. He couldn’t afford to lose this once-in-a-lifetime opportunity to land a full-time job at Larimar Research Institute.
At the desk in front of him, Zara was already opening the next case.
Renzo wondered how he was going to keep up with the other interns. He held on to Hiro’s advice: One case at a time.
Continue the story with Case 001: The Pod That Came Back.