SlideShare a Scribd company logo
1 of 26
Download to read offline
Kubernetes en Amazon ECS
Docker orchestration
Agenda
What is Docker (recap)
Docker in production
◦ AWS ECS: Elastic Container Service
◦ Kubernetes
Wat is Docker?
What’s new: Docker Multi-stage builds
Docker Orchestration
Docker standalone
Install default linux machines with docker engine
Run docker images with individual port mapping
Use DNS + Load Balancer to access services.
Example: nexus.hi10.cloud, nexusd.hi10.cloud
Contra:
High Availability needs to be managed manually
Port mapping needs to be managed manually (e.g. avoid overlapping ports)
ALB: Amazon Application LoadBalancer
Dedicated Amazon Hardware
Always at least 2 machines
Same cost as 2 t2.micro EC2’s
Can do HTTPS handshake
Parses part of the HTTP
request to route to correct
target group.
Chooses healthy registered
target in the target group.
Demo
Amazon AWS ECS / ECR
ECR: Elastic Container Registry
Free docker registry with IAM authentication
ECS: Elastic Container Services
‘Task definition’ similar to docker-compose project
Runs on EC2 instances with special Amazon Linux installation
Future: Fargate, ECS without EC2 instances (GA: May 2018)
AWS ECS will handle distribution over availability zones, VPC etc.
AWS ECS will auto-scale on demand (based on CloudWatch alarms)
ECS Architecture
ECS Task Definition
Defined in container-definitions.json
Set of docker images, always run together
Can have shared volumes
Can have local network links (bridged)
Example
Frontend Proxy
Backend Server
Log Streamer
Demo
ECS Service
ECS Service will monitor and
restart one or more replica’s of
a Task
ECS Service will bind the
frontend container’s port to an
ELB’s TargetGroup
Only way to access a container
is via the loadbalancer
Demo
Workshop: create new docker image, create a task, and link it to a service
Kubernetes
Container orchestrator from Google, rewrite of internal cluster management system
First deployment option for Google Cloud Platform
Now, they also support simple VM’s
Kubernetes manager for free on Google Cloud Platform
On AWS: EKS announces, but not yet available (Q2 2018?)
Kubernetes Components
Kubernetes Pods
Pod: similar to ECS task
● Set of Containers
● Always on the same node
● Have their own IP address
● Can share volumes
● Always scaled together
Kubernetes Manager
Runs on a separate node
Manages Deployments (fka Replication Controllers)
- Scheduler that starts and monitors Pods over all worker nodes
- Assures correct amount of replicas
Services
- Makes Pods accessible
- Multiple options
- Virtual ClusterIP
- Fixed NodePort on all Nodes’ private ip
- LoadBalancer
- Uses kube-proxy service that runs on every node
- Every service gets a local DNS name
- Allows multiple ports per Pod
ClusterIP
Creates a virtual IP to access a service
from within the cluster.
KubeCTL Proxy allows tunneling
ClusterIP’s for development purposes.
E.g. Admin console:
http://localhost:8080/api/v1/namespaces/kube-syst
em/services/https:kubernetes-dashboard:/proxy/
NodePort
Allows external access via a port
number on any of the cluster’s
nodes.
Loadbalancer
Launches an infrastructure-specific external
LoadBalancer.
For AWS: a Classic ELB
Ingress
Needs Ingress Controller services
running on any Node
nginx reverse proxy by default
older versions: haproxy
new alternative: traefik
Like a load balancer, but running on the
Kubernetes Nodes
Fully customisable, e.g. can include
Authentication.
Demo + Workshop
Kubernetes vs AWS ECS
ECS:
Only on AWS
Uses existing AWS infrastructure
Scheduler is for free
No Service Discovery built-in
Networking only via ALB or NLB
1 port per service
Managed setup & maintenance
Kubernetes:
Works on all Cloud Platforms and On-Premise
Limited AWS Services integration
Pay for an extra Manager Node
Service Discovery via DNS
Complex networking possibilities
Multiple ports per service
Custom setup & maintenance
The End

More Related Content

What's hot

What's hot (20)

Kubernetes Webinar Series - Exploring Daemon Sets and Jobs
Kubernetes Webinar Series - Exploring Daemon Sets and JobsKubernetes Webinar Series - Exploring Daemon Sets and Jobs
Kubernetes Webinar Series - Exploring Daemon Sets and Jobs
 
kubernetes for beginners
kubernetes for beginnerskubernetes for beginners
kubernetes for beginners
 
Docker Elastic Beanstalk
Docker Elastic BeanstalkDocker Elastic Beanstalk
Docker Elastic Beanstalk
 
Stateful set in kubernetes implementation & usecases
Stateful set in kubernetes implementation & usecases Stateful set in kubernetes implementation & usecases
Stateful set in kubernetes implementation & usecases
 
Kubernetes on aws
Kubernetes on awsKubernetes on aws
Kubernetes on aws
 
kubernates and micro-services
kubernates and micro-serviceskubernates and micro-services
kubernates and micro-services
 
Using Kubernetes to deploy Django in GCP
Using Kubernetes to deploy Django in GCPUsing Kubernetes to deploy Django in GCP
Using Kubernetes to deploy Django in GCP
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
 
CI/CD with Kubernetes, Helm & Wercker (#madScalability)
CI/CD with Kubernetes, Helm & Wercker (#madScalability)CI/CD with Kubernetes, Helm & Wercker (#madScalability)
CI/CD with Kubernetes, Helm & Wercker (#madScalability)
 
Making cloud native platform by kubernetes
Making cloud native platform by kubernetesMaking cloud native platform by kubernetes
Making cloud native platform by kubernetes
 
Kubernetes kubecon-roundup
Kubernetes kubecon-roundupKubernetes kubecon-roundup
Kubernetes kubecon-roundup
 
How to make cloud native platform by kubernetes
How to make cloud native platform by kubernetesHow to make cloud native platform by kubernetes
How to make cloud native platform by kubernetes
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
Kubernetes Webinar Series - Understanding Service Discovery
Kubernetes Webinar Series - Understanding Service DiscoveryKubernetes Webinar Series - Understanding Service Discovery
Kubernetes Webinar Series - Understanding Service Discovery
 
Autoscaling Kubernetes
Autoscaling KubernetesAutoscaling Kubernetes
Autoscaling Kubernetes
 
Kubernetes Basics
Kubernetes BasicsKubernetes Basics
Kubernetes Basics
 
reInvent 2021 Recap and k9s review
reInvent 2021 Recap and k9s reviewreInvent 2021 Recap and k9s review
reInvent 2021 Recap and k9s review
 
Introduction kubernetes 2017_12_24
Introduction kubernetes 2017_12_24Introduction kubernetes 2017_12_24
Introduction kubernetes 2017_12_24
 
Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
 
Kubernetes Kops - Automation Night
Kubernetes Kops - Automation NightKubernetes Kops - Automation Night
Kubernetes Kops - Automation Night
 

Similar to Kubernetes and Amazon ECS

Developer Experience Cloud Native - From Code Gen to Git Commit without a CI/...
Developer Experience Cloud Native - From Code Gen to Git Commit without a CI/...Developer Experience Cloud Native - From Code Gen to Git Commit without a CI/...
Developer Experience Cloud Native - From Code Gen to Git Commit without a CI/...
Michael Hofmann
 

Similar to Kubernetes and Amazon ECS (20)

Docker in practice
Docker in practiceDocker in practice
Docker in practice
 
Scaling Docker with Kubernetes
Scaling Docker with KubernetesScaling Docker with Kubernetes
Scaling Docker with Kubernetes
 
AWS Community Day - Andrew May - Running Containers in AWS
AWS Community Day - Andrew May - Running Containers in AWS  AWS Community Day - Andrew May - Running Containers in AWS
AWS Community Day - Andrew May - Running Containers in AWS
 
Running containers in AWS
Running containers in AWSRunning containers in AWS
Running containers in AWS
 
AWS ECS Meetup Talentica
AWS ECS Meetup TalenticaAWS ECS Meetup Talentica
AWS ECS Meetup Talentica
 
Building and running Spring Cloud-based microservices on AWS ECS
Building and running Spring Cloud-based microservices on AWS ECSBuilding and running Spring Cloud-based microservices on AWS ECS
Building and running Spring Cloud-based microservices on AWS ECS
 
Kubernetes Immersion
Kubernetes ImmersionKubernetes Immersion
Kubernetes Immersion
 
Bitbucket Pipelines - Powered by Kubernetes
Bitbucket Pipelines - Powered by KubernetesBitbucket Pipelines - Powered by Kubernetes
Bitbucket Pipelines - Powered by Kubernetes
 
Kubernetes and docker
Kubernetes and dockerKubernetes and docker
Kubernetes and docker
 
Containers and Cloud: From LXC to Docker to Kubernetes
Containers and Cloud: From LXC to Docker to KubernetesContainers and Cloud: From LXC to Docker to Kubernetes
Containers and Cloud: From LXC to Docker to Kubernetes
 
Kubernetes extensibility
Kubernetes extensibilityKubernetes extensibility
Kubernetes extensibility
 
Running containerized application in AWS ECS
Running containerized application in AWS ECSRunning containerized application in AWS ECS
Running containerized application in AWS ECS
 
Modernizing existing .NET applications with Windows Containers and Azure cloud
Modernizing existing .NET applications with Windows Containers and Azure cloudModernizing existing .NET applications with Windows Containers and Azure cloud
Modernizing existing .NET applications with Windows Containers and Azure cloud
 
From dev to prod: Kubernetes on AWS (short ver.)
From dev to prod: Kubernetes on AWS (short ver.)From dev to prod: Kubernetes on AWS (short ver.)
From dev to prod: Kubernetes on AWS (short ver.)
 
ECS in action
ECS in actionECS in action
ECS in action
 
Developer Experience Cloud Native - From Code Gen to Git Commit without a CI/...
Developer Experience Cloud Native - From Code Gen to Git Commit without a CI/...Developer Experience Cloud Native - From Code Gen to Git Commit without a CI/...
Developer Experience Cloud Native - From Code Gen to Git Commit without a CI/...
 
Kubernetes-Fundamentals.pptx
Kubernetes-Fundamentals.pptxKubernetes-Fundamentals.pptx
Kubernetes-Fundamentals.pptx
 
Containerize! Between Docker and Jube.
Containerize! Between Docker and Jube.Containerize! Between Docker and Jube.
Containerize! Between Docker and Jube.
 
Deploying a Kubernetes App with Amazon EKS
Deploying a Kubernetes App with Amazon EKSDeploying a Kubernetes App with Amazon EKS
Deploying a Kubernetes App with Amazon EKS
 
Building a Kubernetes App with Amazon EKS
Building a Kubernetes App with Amazon EKSBuilding a Kubernetes App with Amazon EKS
Building a Kubernetes App with Amazon EKS
 

More from Geert Pante

Version Management in Maven
Version Management in MavenVersion Management in Maven
Version Management in Maven
Geert Pante
 

More from Geert Pante (10)

OAuth2 and OpenID with Spring Boot
OAuth2 and OpenID with Spring BootOAuth2 and OpenID with Spring Boot
OAuth2 and OpenID with Spring Boot
 
Kafka Introduction.pptx
Kafka Introduction.pptxKafka Introduction.pptx
Kafka Introduction.pptx
 
Spring JMS and ActiveMQ
Spring JMS and ActiveMQSpring JMS and ActiveMQ
Spring JMS and ActiveMQ
 
Log management with ELK
Log management with ELKLog management with ELK
Log management with ELK
 
Java EE 6
Java EE 6Java EE 6
Java EE 6
 
Spring 4 en spring data
Spring 4 en spring dataSpring 4 en spring data
Spring 4 en spring data
 
Spring and SOA (2006)
Spring and SOA (2006)Spring and SOA (2006)
Spring and SOA (2006)
 
Maven plugins, properties en profiles: Advanced concepts in Maven
Maven plugins, properties en profiles: Advanced concepts in MavenMaven plugins, properties en profiles: Advanced concepts in Maven
Maven plugins, properties en profiles: Advanced concepts in Maven
 
The glory of REST in Java: Spring HATEOAS, RAML, Temenos IRIS
The glory of REST in Java: Spring HATEOAS, RAML, Temenos IRISThe glory of REST in Java: Spring HATEOAS, RAML, Temenos IRIS
The glory of REST in Java: Spring HATEOAS, RAML, Temenos IRIS
 
Version Management in Maven
Version Management in MavenVersion Management in Maven
Version Management in Maven
 

Recently uploaded

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Recently uploaded (20)

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

Kubernetes and Amazon ECS

  • 1. Kubernetes en Amazon ECS Docker orchestration
  • 2. Agenda What is Docker (recap) Docker in production ◦ AWS ECS: Elastic Container Service ◦ Kubernetes
  • 4. What’s new: Docker Multi-stage builds
  • 6. Docker standalone Install default linux machines with docker engine Run docker images with individual port mapping Use DNS + Load Balancer to access services. Example: nexus.hi10.cloud, nexusd.hi10.cloud Contra: High Availability needs to be managed manually Port mapping needs to be managed manually (e.g. avoid overlapping ports)
  • 7. ALB: Amazon Application LoadBalancer Dedicated Amazon Hardware Always at least 2 machines Same cost as 2 t2.micro EC2’s Can do HTTPS handshake Parses part of the HTTP request to route to correct target group. Chooses healthy registered target in the target group.
  • 9. Amazon AWS ECS / ECR ECR: Elastic Container Registry Free docker registry with IAM authentication ECS: Elastic Container Services ‘Task definition’ similar to docker-compose project Runs on EC2 instances with special Amazon Linux installation Future: Fargate, ECS without EC2 instances (GA: May 2018) AWS ECS will handle distribution over availability zones, VPC etc. AWS ECS will auto-scale on demand (based on CloudWatch alarms)
  • 11. ECS Task Definition Defined in container-definitions.json Set of docker images, always run together Can have shared volumes Can have local network links (bridged) Example Frontend Proxy Backend Server Log Streamer
  • 12. Demo
  • 13. ECS Service ECS Service will monitor and restart one or more replica’s of a Task ECS Service will bind the frontend container’s port to an ELB’s TargetGroup Only way to access a container is via the loadbalancer
  • 14.
  • 15. Demo Workshop: create new docker image, create a task, and link it to a service
  • 16. Kubernetes Container orchestrator from Google, rewrite of internal cluster management system First deployment option for Google Cloud Platform Now, they also support simple VM’s Kubernetes manager for free on Google Cloud Platform On AWS: EKS announces, but not yet available (Q2 2018?)
  • 18. Kubernetes Pods Pod: similar to ECS task ● Set of Containers ● Always on the same node ● Have their own IP address ● Can share volumes ● Always scaled together
  • 19. Kubernetes Manager Runs on a separate node Manages Deployments (fka Replication Controllers) - Scheduler that starts and monitors Pods over all worker nodes - Assures correct amount of replicas Services - Makes Pods accessible - Multiple options - Virtual ClusterIP - Fixed NodePort on all Nodes’ private ip - LoadBalancer - Uses kube-proxy service that runs on every node - Every service gets a local DNS name - Allows multiple ports per Pod
  • 20. ClusterIP Creates a virtual IP to access a service from within the cluster. KubeCTL Proxy allows tunneling ClusterIP’s for development purposes. E.g. Admin console: http://localhost:8080/api/v1/namespaces/kube-syst em/services/https:kubernetes-dashboard:/proxy/
  • 21. NodePort Allows external access via a port number on any of the cluster’s nodes.
  • 22. Loadbalancer Launches an infrastructure-specific external LoadBalancer. For AWS: a Classic ELB
  • 23. Ingress Needs Ingress Controller services running on any Node nginx reverse proxy by default older versions: haproxy new alternative: traefik Like a load balancer, but running on the Kubernetes Nodes Fully customisable, e.g. can include Authentication.
  • 25. Kubernetes vs AWS ECS ECS: Only on AWS Uses existing AWS infrastructure Scheduler is for free No Service Discovery built-in Networking only via ALB or NLB 1 port per service Managed setup & maintenance Kubernetes: Works on all Cloud Platforms and On-Premise Limited AWS Services integration Pay for an extra Manager Node Service Discovery via DNS Complex networking possibilities Multiple ports per service Custom setup & maintenance