© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
DEV303
Rodando Kubernetes com Amazon EKS
Filipe Scoton
FSI Solutions Architect, Amazon Web Services
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Introdução ao EKS
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Plataforma de
gerenciamento de
containers open source
Ajuda a rodar containers
em escala
Fornece ferramentas
essenciais
para construir
aplicações modernas
O que é Kubernetes?
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Aplicações Nativas na Nuvem
F e r r a m e n t a l d e
m i c r o s s e r v i ç o s
A p l i c a ç õ e s N a t i v a s
n a N u v e m
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Mas onde você roda K8S importa
Q u a l i d a d e d a
p l a t a f o r m a d e n u v e m
Q u a l i d a d e d a s
a p l i c a ç õ e s
S e u s u s u á r i o s
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
57%Dos workloads de Kubernetes
rodam na AWS hoje
— Cloud Native Computing Foundation
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
3x Kubernetes masters para Alta Disponibilidade
Kubernetes na AWS
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
API
server
Cloud
controller
Controller
manager
Scheduler Add-onsKubeDNS
Kubernetes master
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Zona de Disponibilidade
1
Etcd
Master
Etcd
Master
Etcd
Master
Zona de Disponibilidade
2
Zona de Disponibilidade
3
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Zona de Disponibilidade
1
Etcd
Master
Etcd
Master
Zona de Disponibilidade
2
Zona de Disponibilidade
3
Etcd
Master
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
“Rode Kunernetes para mim.”
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
“Integrações nativas com a AWS.”
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
”Experiência do Kubernetes open source.”
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
E L A S T I C C O N T A I N E R S E R V I C E F O R K U B E R N E T E S
(EKS)
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Princípio 1
EKS é uma plataforma para grandes empresas
rodarem workloads de produção
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Princípio 2
EKS provê uma experiência nativa de Kubernetes
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Princípio 3
Se os clientes de EKS quiserem usar outros serviços da AWS, as integrações são
perfeitas e eliminam o trabalho desnecessário
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Princípio 4
O time do EKS contribui ativamente para o projeto Kubernetes
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Zona de Disponibilidade
1
Etcd
Master
Etcd
Master
Zona de Disponibilidade
2
Zona de Disponibilidade
3
Etcd
Master
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Zona de Disponibilidade
1
Master Master
Zona de Disponibilidade
2
Zona de Disponibilidade
3
Master
Workers Workers Workers
Conta do Cliente
Gerenciado pela AWS
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
meucluster.eks.amazonaws.com
EKS Workers
Kubectl
Amazon EKS
AZ 1 AZ 2 AZ 3
Sua Conta da AWS
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Arquitetura do EKS
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Como eu provisiono os nós Workers no EKS?
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Autenticação IAM com Kubernetes
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Heptio IAM Authenticator
https://github.com/heptiolabs/kubernetes-aws-authenticator
Abordagem open source para integrar
autenticação AWS IAM com Kubernetes
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Kubectl
3) Autoriza AWS Identity com RBAC
K8S API
1) Envia AWS Identity
2) Verifica AWS Identity
4) Ação K8S
permitida/negada
AWS Auth
Autenticação IAM + Kubectl
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Suporte a IAM Auth == Upstream na 1.10
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Rede nativa da VPC com
plugin CNI
Mesmo endereço IP, tanto
dentro do pod quanto na
VPC
Rede segura e simples Open Source e no GitHub
…{ }
https://github.com/aws/amazon-vpc-cni-k8s
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Nginx Pod
Java Pod
ENI
Secondary IPs:
10.0.0.1
10.0.0.2
Veth IP: 10.0.0.1
Veth IP: 10.0.0.2
Nginx Pod
Java Pod
ENI
Veth IP: 10.0.0.20
Veth IP: 10.0.0.22
Secondary IPs:
10.0.0.20
10.0.0.22
ec2.associateaddress()
VPC Subnet – 10.0.0.0/24
Instância 1 Instância 2
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Políticas de Rede do
Kubernetes aplicam regras
de segurança de rede
Calico é a implementação
líder de API de política de
rede
Open Source,
desenvolvimento ativo
(>100 contribuidores)
Suporte commercial
disponível através da
Tigera
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
S e p a r a ç ã o d e
e s t á g i o s
S e p a r a ç ã o d e
“ Te n a n t ”
F i r e w a l l s
g r a n u l a r e s
C o n f o r m i d a d e
Ex: geralmente utiliza-se
namespaces
para diferentes times de uma
empresa—mas sem política de
rede, eles não são isolados no
nível de rede
Reduz superfície de ataque
entre as aplicações baseadas
em microsserviços
Isolar dev, test e prod Ex: PCI, HIPAA
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Acesso e visibilidade do Master
Amazon
CloudWatch
AWS
CloudTrail
Master
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Estratégia de Upgrade: “On-Demand Updates”
Upgrades do Kubernetes
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
1.9.11.9.2
Versão
1.9
Versão
1.10
Upgrades do Kubernetes
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Escalabilidade da aplicação
• Horizontal Pod Autoscaler (HPA) – escala pods em
resposta às métricas geradas (CPU) pelo K8S
• Suporte a métricas personalizadas
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Escalabilidade do cluster
• Duas opções: Auto Scaling nativo, K8S Cluster Autoscaler
• Cluster Autoscaler é reativo
• AWS Auto Scaling groups funcionam normalmente
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Kubectl
Workers
PrivateLink
Interface Amazon EKS
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Novidades?
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
EKS é Kubernetes Certified
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Conformidade Kubernetes
1. Portabilidade e Interoperabilidade garantidas
2. Atualizações frequentes
3. Confirmabilidade
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Tal $(coisa) irá funcionar no
EKS?
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Obrigado!

Rodando Kubernetes com Amazon EKS

  • 1.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. DEV303 Rodando Kubernetes com Amazon EKS Filipe Scoton FSI Solutions Architect, Amazon Web Services
  • 2.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Introdução ao EKS
  • 3.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Plataforma de gerenciamento de containers open source Ajuda a rodar containers em escala Fornece ferramentas essenciais para construir aplicações modernas O que é Kubernetes?
  • 4.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Aplicações Nativas na Nuvem F e r r a m e n t a l d e m i c r o s s e r v i ç o s A p l i c a ç õ e s N a t i v a s n a N u v e m
  • 5.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Mas onde você roda K8S importa Q u a l i d a d e d a p l a t a f o r m a d e n u v e m Q u a l i d a d e d a s a p l i c a ç õ e s S e u s u s u á r i o s
  • 6.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. 57%Dos workloads de Kubernetes rodam na AWS hoje — Cloud Native Computing Foundation
  • 7.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. 3x Kubernetes masters para Alta Disponibilidade Kubernetes na AWS
  • 8.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. API server Cloud controller Controller manager Scheduler Add-onsKubeDNS Kubernetes master
  • 9.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Zona de Disponibilidade 1 Etcd Master Etcd Master Etcd Master Zona de Disponibilidade 2 Zona de Disponibilidade 3
  • 10.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Zona de Disponibilidade 1 Etcd Master Etcd Master Zona de Disponibilidade 2 Zona de Disponibilidade 3 Etcd Master
  • 11.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. “Rode Kunernetes para mim.”
  • 12.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. “Integrações nativas com a AWS.”
  • 13.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. ”Experiência do Kubernetes open source.”
  • 14.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. E L A S T I C C O N T A I N E R S E R V I C E F O R K U B E R N E T E S (EKS)
  • 15.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Princípio 1 EKS é uma plataforma para grandes empresas rodarem workloads de produção
  • 16.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Princípio 2 EKS provê uma experiência nativa de Kubernetes
  • 17.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Princípio 3 Se os clientes de EKS quiserem usar outros serviços da AWS, as integrações são perfeitas e eliminam o trabalho desnecessário
  • 18.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Princípio 4 O time do EKS contribui ativamente para o projeto Kubernetes
  • 19.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Zona de Disponibilidade 1 Etcd Master Etcd Master Zona de Disponibilidade 2 Zona de Disponibilidade 3 Etcd Master
  • 20.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Zona de Disponibilidade 1 Master Master Zona de Disponibilidade 2 Zona de Disponibilidade 3 Master Workers Workers Workers Conta do Cliente Gerenciado pela AWS
  • 21.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. meucluster.eks.amazonaws.com EKS Workers Kubectl Amazon EKS AZ 1 AZ 2 AZ 3 Sua Conta da AWS
  • 22.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Arquitetura do EKS
  • 23.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Como eu provisiono os nós Workers no EKS?
  • 24.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Autenticação IAM com Kubernetes
  • 25.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Heptio IAM Authenticator https://github.com/heptiolabs/kubernetes-aws-authenticator Abordagem open source para integrar autenticação AWS IAM com Kubernetes
  • 26.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Kubectl 3) Autoriza AWS Identity com RBAC K8S API 1) Envia AWS Identity 2) Verifica AWS Identity 4) Ação K8S permitida/negada AWS Auth Autenticação IAM + Kubectl
  • 27.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Suporte a IAM Auth == Upstream na 1.10
  • 28.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Rede nativa da VPC com plugin CNI Mesmo endereço IP, tanto dentro do pod quanto na VPC Rede segura e simples Open Source e no GitHub …{ } https://github.com/aws/amazon-vpc-cni-k8s
  • 29.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Nginx Pod Java Pod ENI Secondary IPs: 10.0.0.1 10.0.0.2 Veth IP: 10.0.0.1 Veth IP: 10.0.0.2 Nginx Pod Java Pod ENI Veth IP: 10.0.0.20 Veth IP: 10.0.0.22 Secondary IPs: 10.0.0.20 10.0.0.22 ec2.associateaddress() VPC Subnet – 10.0.0.0/24 Instância 1 Instância 2
  • 30.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Políticas de Rede do Kubernetes aplicam regras de segurança de rede Calico é a implementação líder de API de política de rede Open Source, desenvolvimento ativo (>100 contribuidores) Suporte commercial disponível através da Tigera
  • 31.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. S e p a r a ç ã o d e e s t á g i o s S e p a r a ç ã o d e “ Te n a n t ” F i r e w a l l s g r a n u l a r e s C o n f o r m i d a d e Ex: geralmente utiliza-se namespaces para diferentes times de uma empresa—mas sem política de rede, eles não são isolados no nível de rede Reduz superfície de ataque entre as aplicações baseadas em microsserviços Isolar dev, test e prod Ex: PCI, HIPAA
  • 32.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Acesso e visibilidade do Master Amazon CloudWatch AWS CloudTrail Master
  • 33.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Estratégia de Upgrade: “On-Demand Updates” Upgrades do Kubernetes
  • 34.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. 1.9.11.9.2 Versão 1.9 Versão 1.10 Upgrades do Kubernetes
  • 35.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved.
  • 36.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Escalabilidade da aplicação • Horizontal Pod Autoscaler (HPA) – escala pods em resposta às métricas geradas (CPU) pelo K8S • Suporte a métricas personalizadas
  • 37.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Escalabilidade do cluster • Duas opções: Auto Scaling nativo, K8S Cluster Autoscaler • Cluster Autoscaler é reativo • AWS Auto Scaling groups funcionam normalmente
  • 38.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved.
  • 39.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Kubectl Workers PrivateLink Interface Amazon EKS
  • 40.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Novidades?
  • 41.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. EKS é Kubernetes Certified
  • 42.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Conformidade Kubernetes 1. Portabilidade e Interoperabilidade garantidas 2. Atualizações frequentes 3. Confirmabilidade
  • 43.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Tal $(coisa) irá funcionar no EKS?
  • 44.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved.
  • 45.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Obrigado!