DEV Community

Grunet
Grunet

Posted on

Kubernetes for AWS ECS People

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)