In Kubernetes, you run pods, which wrap account containers.
A node is a machine (physical or virtual) where pods live.
Delete existing pods and services
Assuming that you have been completed launching K8S via FABRIC, you will have one nginx pod and one nginx service running as part of the validation scheme.
First, SSH into node1 using the generated ssh command.
Use the following commands to check the existence of the pod and service, then to delete the pod and service.
After deletion, check again to confirm that the pod and service are gone.
1
2
3
4
5
kubectl get deployment -o wide
kubectl get pods -o wide
kubectl get svc -o wide
kubectl delete deployment nginx-demo
kubectl delete svc nginx-demo
CAREERDeployments connect development to release engineering
In industry, creating a Deployment is part of a larger release process: building an immutable image, identifying its version, validating the manifest, rolling it out gradually, observing health, and rolling back when necessary. Google’s SRE chapter on release engineering emphasizes reproducible and automated releases rather than one-off “snowflake” procedures.
Practice describing a release with operational evidence:
the exact image tag or digest deployed;
rollout status and revision history;
readiness behavior during replacement;
the command and criteria used to roll back;
proof that the Service continued selecting healthy Pods.
These are common responsibilities for cloud, DevOps, platform, and SRE roles.
Pods: Containers and Node Abstraction
What is a Pod?
A pod includes one or more containers plus additional share resources.
Shared resources include, but are not limited to, shared IP (internal/external) and storage volumes.
Example pod: one nginx webserver container plus one log-shipper sidecar container plus shared volume for log data.
Pods are scheduled onto nodes by the kube-scheduler.
Pod and physical (virtual) node
Each node runs a kubelet agent.
Kubelet talks to the container runtime (containerd in Rancher Desktop).
When a pod is deployed, kubelet pulls the associated container image(s) and runs it(them).
graph TD
subgraph Node1["Node (VM)"]
Kubelet1["kubelet + runtime"]
subgraph Pod1["Pod"]
Nginx["Container: Nginx"]
end
end
subgraph Node2["Node (VM)"]
Kubelet2["kubelet + runtime"]
subgraph Pod2["Pod"]
Redis["Container: Redis"]
end
end
Kubelet1 --> Pod1
Kubelet2 --> Pod2
Hands-on with FABRIC
Verify that your FABRIC experiment is up and running, then get into the server node and run the followings
1
kubectl get nodes -o wide
Create a file called nginx-pod.yaml with the following content