Amazon EKS high-level view — AWS runs the control plane; you choose the data-plane model (managed, self-managed, or Fargate).
1) What Is Amazon EKS?
Amazon Elastic Kubernetes Service (EKS) is a managed platform for running
upstream Kubernetes clusters. AWS operates the control plane — the
kube-apiserver, etcd, the scheduler, and controller managers — across multiple
Availability Zones, providing fault tolerance, patching, and version upgrades so your team can
focus on deploying applications instead of racking masters or babysitting etcd.
Key idea: You manage applications and (optionally) nodes. AWS manages the Kubernetes brain.
2) Fully Managed Control Plane
The EKS control plane is multi-AZ by default. AWS handles high availability, patching,
and scaling of the API server and etcd. This removes operational toil and reduces the blast-radius of failures.
Automatic health checks and failover across AZs.
Automated minor version patching with predictable upgrade paths.
Seamless Kubernetes upgrades for the control plane; you schedule node upgrades.
Why it matters: No more masters to provision, snapshot, encrypt, or recover.
EKS runs upstream Kubernetes, so your manifests, controllers, and tools are portable. Moving workloads from another
CNCF-compliant cluster usually needs no code changes.
Karpenter — open-source provisioner that launches just-in-time capacity across flexible instance types.
10) Versioning & Upgrades
EKS provides managed control-plane upgrades. Plan quarterly cadences, validate apiVersion changes, and roll nodes using surge parameters on node groups. Canary business workloads first.
Checklist: Read release notes, update aws-vpc-cni, kube-proxy, coredns, and test upgrade on non-prod.
11) Networking & Load Balancing
Amazon VPC CNI provides native VPC IPs for pods (ENIs per node).
Ingress with ALB Ingress Controller; NLB for TCP/UDP or high throughput.
Enable Kubernetes audit logs to CloudWatch Logs. Ship application and systemd logs from nodes.
Use retention and subscription filters to route only what you need to analytics or SIEM.
15) Multi-Cluster & Multi-Region
Use EKS Connector for visibility across clusters (including some external).
Standardize add-ons and policies with GitOps and templates for repeatability.
16) Service Mesh
EKS supports AWS App Mesh and Istio for traffic shaping, encryption in mesh, and rich telemetry.
17) CI/CD Pipelines
Pair EKS with AWS CodePipeline, GitHub Actions, or Jenkins.
Bake immutable images in ECR, scan for CVEs, sign with cosign, and deploy via GitOps.
# Exec into a debug pod with busybox
kubectl -n default run dnsutils --image=busybox:1.36 --rm -it --command -- sh
nslookup kubernetes.default.svc.cluster.local
wget -S -O - http://<service-name>.<ns>.svc.cluster.local:8080
exit
Note on Graph API: For Amazon EKS, the Microsoft Graph API is not used.
Identity integration relies on AWS IAM (including IRSA) and OIDC providers.
If your platform team also manages Entra ID for SSO to developer tools, use Microsoft Graph for that surface area — but EKS itself is troubleshot via kubectl, AWS APIs/CLI, and AWS Tools for PowerShell.
Hands-On: Production-Ready Blueprint
Create private subnets and dedicated security groups per node group; enable VPC flow logs for forensics.
Provision EKS with the right version baseline; pin add-on versions and record SBOMs for base images.
Choose capacity strategy: one on-demand MNG for baseline, one Spot MNG for burst, plus Fargate for jobs.
# Cordon and drain a single node
kubectl cordon ip-10-0-12-34.ec2.internal
kubectl drain ip-10-0-12-34.ec2.internal --ignore-daemonsets --delete-emptydir-data --grace-period=60 --timeout=10m
# Uncordon after health checks
kubectl uncordon ip-10-0-12-34.ec2.internal
Validate IRSA Permissions
# Who am I inside the pod?
TOKEN=/var/run/secrets/eks.amazonaws.com/serviceaccount/token
curl -sS -H "Authorization: Bearer $(cat $TOKEN)" \
$(kubectl get --raw /apis/authentication.k8s.io/v1/tokenreviews) >/dev/null
# Attempt an AWS call with the pod's role (example: S3 list)
aws sts get-caller-identity
aws s3 ls s3://<bucket> --no-sign-request:false
FAQ: Short Answers to Big Questions
Is EKS locked to AWS?
No. EKS runs upstream Kubernetes. Your manifests and controllers remain portable.
Can I run EKS on-prem?
Use EKS Anywhere for consistent tooling and support.
Do I need a service mesh?
Not always. Start with simple ingress and add mesh when you need traffic shaping, mTLS, or detailed telemetry.
How do I cut costs fast?
Right-size requests, enable Spot for burst, consolidate ALBs, limit log ingestion, and adopt Graviton nodes.
Copy-Paste Templates
PodDisruptionBudget
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: web-pdb
namespace: web
spec:
minAvailable: 2
selector:
matchLabels:
app: web
Topology Spread
apiVersion: apps/v1
kind: Deployment
metadata:
name: api
namespace: web
spec:
replicas: 6
selector:
matchLabels: { app: api }
template:
metadata:
labels: { app: api }
spec:
topologySpreadConstraints:
- maxSkew: 1
topologyKey: topology.kubernetes.io/zone
whenUnsatisfiable: DoNotSchedule
labelSelector:
matchLabels: { app: api }
Your point of view caught my eye and was very interesting. Thanks. I have a question for you. https://www.binance.com/register?ref=IHJUI7TF
Thanks for sharing. I read many of your blog posts, cool, your blog is very good.