Background
I've been trying to get familiar with key Kubernetes (k8s) terms recently by going through this very helpful Understanding Kubernetes in a visual way book, and noticed a lot of analogies to AWS's Elastic Container Service (ECS) offering while doing so.
Since I'm more familiar with ECS terms, I thought I'd take a stab at drafting a "translation guide" of sorts between k8s and ECS terminology. The disclaimers being I currently know very little about k8s and am no AWS expert.
The Translation Guide
This is in the same order as the terms appear in the Understanding Kubernetes in a visual way book
- etcd
- ECS Control Plane's state tracking system
- API server
- ECS Control Plane's implementation behind the public ECS API surface
- Scheduler
- ECS Control Plane's task placement functionality
- Controller-Manager
- ECS Control Plane's various other functionalities that try to make the current state of things match the desired state
- Kubelet
- ECS agent on the EC2 instance
- Proxy
- Elastic Network Interface (ENI) for the EC2 instance
- Kubeconfig
- Cloudformation template
- Kubectl
- AWS (ECS) CLI
- Namespaces
- ECS Clusters
- Resource Quotas
- ECS service quotas
- Pod
- Task
- Pod Lifecycle (States)
- Task Lifecycle (States)
- Pod Deletion
- ECS stopping a broken task then spinning up a fresh one
- Liveness probe
- Container-level healthcheck
- Readiness probe
- ALB healthchecks
- Startup probe
- ECS service health check grace period
- "PodStart" container lifecycle event
- Task Definition command (?)
- "PreStop" container lifecycle event
- Container code listening for SIGTERM sent by the ECS agent (?)
- Execute commands in containers
- ECS Exec
- Init containers
- Task Definition container dependency settings
- Job
- EventBridge event triggering a Task execution
- CronJob
- Scheduled Tasks (aka EventBridge rule with a cron schedule triggering a Task execution)
- ConfigMaps
- Task Definition environment variables
- Secrets
- Using Parameter Store/Secrets Manager secrets in a Task Definition
- Deployment Rolling Update
- The default ECS service update/deploy behavior
- Pull images configuration
- ECS agent pulls images from ECR per the Task Definition
- ReplicaSet
- DesiredCount for an ECS service
- DaemonSet
- DAEMON scheduling strategy for an ECS service
- Service
- Network Load Balancer
- Labels and Selectors
- Tags and the "Resource Groups Tagging" API
- Ingress
- Application Load Balancer (ALB)
- API Gateway
- Persistent Volume, Persistent Volume Claim, StorageClass
- Elastic Block Storage (EBS)
- Elastic File System (EFS)
- Horizontal Pod Autoscaler
- Application Auto Scaling rules applied to an ECS service
- Limit Range
- ? (are there ways to limit memory usage at the ECS cluster level?)
- Out of Memory (OOM) Killer
- ECS agent on the EC2 instance killing a task if it runs out of memory
- Memory Requests and Limits
- Container-level memoryReservation and memory parameters in a Task Definition
- CPU Requests and Limits
- Container-level cpu parameter in a Task Definition
- Pod Disruption Budget
- Minimum Healthy Percent and Maximum Healthy Percent for an ECS service during a deployment
- Quality of Service
- ?
- Network Policies
- Network Access Control Lists (ACLs)
- Role-Based Access Control (RBAC)
- IAM policies and Resource-based policies
- Pod (Anti) Affinity and Node (Anti) Affinity
- ECS service task placement strategies and task placement constraints
- Node
- EC2 instance
- Node lifecycle
- EC2 instance lifecycle
Request for Help
If you are more familiar with k8s or ECS and notice any inaccuracies or analogies that could be improved (there are probably a bunch!), feel free to comment here and I can edit them in.
Top comments (0)