kubectl & Kubernetes Manifests: The Basics

~10 min read

The minimum Kubernetes vocabulary needed to deploy and inspect a workload on EKS.

kubectl is the command-line tool for interacting with any Kubernetes cluster's API server, including EKS — the same commands work regardless of which cloud (or on-premises) hosts the cluster. A Deployment manifest describes a desired set of Pod replicas (the smallest deployable unit, typically one or a few tightly-coupled containers) and how to roll out updates to them; a Service manifest describes a stable network endpoint that load-balances traffic across a Deployment's pods, even as individual pods are replaced. On EKS specifically, creating a Service of type LoadBalancer (or an Ingress resource) triggers the AWS Load Balancer Controller add-on to provision an actual NLB or ALB, connecting Kubernetes-native traffic routing to real AWS infrastructure.

💻 Code example

kubectl apply -f deployment.yaml
kubectl get pods
kubectl get deployments
kubectl logs <pod-name>
kubectl describe pod <pod-name>

💬 Deep Dive with AI

Key points

  • kubectl works identically against any Kubernetes cluster, including EKS — that portability is Kubernetes' core value proposition
  • A Pod is the smallest deployable unit; a Deployment manages a desired set of Pod replicas and their rollout
  • A Service gives a Deployment's pods a stable network identity even as individual pods are replaced
  • On EKS, a LoadBalancer-type Service or Ingress triggers the AWS Load Balancer Controller to provision a real NLB/ALB