O documento fornece uma introdução sobre Kubernetes, incluindo: 1) Uma explicação do que é Kubernetes e para que serve; 2) Uma visão geral das novidades da versão 1.11; 3) Dicas sobre provedores de nuvem, alta disponibilidade, persistência de dados, namespaces, controle de permissões e monitoramento.
1. The bomb has been
planted!
O QUE FAZER E O QUE NÃO FAZER EM UM
CLUSTER!
2. WHOAMI
Tenho 23 anos, atualmente
trabalho na Getup. Gosto de coisas
que facilitem a vida.
Linkedin: https://www.linkedin.com/in/talits/
Github:
https://github.com/Talits
Email:
talita.bernardesp@gmail.com
3. Tópicos
● Overview;
● O que há de novo?;
● Cloud Providers;
● MultiMaster;
● Persistência de dados;
● Namespaces;
● Pod Affinity e Pod Anti-Affinity;
● Controle de Permissão;
● Monitoria & Logs;
● Integrações são bem vindas (mas com cuidado!);
● Dicas - Como ser um bom soldado
4. Overview
O que é kubernetes?
“É um orquestrador de containers que permite que seus
serviços e aplicações possam estar sendo coordenados sem
que exista interação humana.”
5. Overview
Para que usar Kubernetes?
Dentro do cenário de microservices é algo extremamente útil:
● Tirar responsabilidade de um operador;
● Ter alta disponibilidade da aplicação em si;
● Ter diversas integrações disponíveis.
6. O que há de novo?
Versão 1.11
● Configuração Dinâmica do Kubelet promovida
para Beta;
● Redimensionamento para PV’s - alpha;
● CoreDNS como plugin de DNS está
disponível.
7.
8. Cloud Providers
Os principais provedores cloud (AWS, Amazon e GCP) possuem
particularidades e serviços próprios integrados com o Kubernetes, portanto é
importante antes de subir um cluster verificar quais os pré-requisitos necessários
e as recomendações de cada um.
9. MultiMaster
● Alta disponibilidade (HA);
● Número ímpar;
● Zonas diferentes.
● Multimaster
● Persistência de dados
● Namespaces
● Controle de Permissão
● Monitoria
● Pod Affinity e Pod Anti-
affinity
10. Persistência de Dados
● Minimamente criar um PVC;
● No caso de banco de dados os principais
cloud providers possuem serviços que
permitem uma administração mais
interessante.
● Multimaster
● Persistência de dados
● Namespaces
● Controle de Permissão
● Monitoria
● Pod-Affinity e Pod Anti-
affinity
11. Namespaces
Elas existem por um motivo óbvio :
Segmentar seus projetos por grau de semelhança e
dar acesso à quem precisa aos projetos.
Importante lembrar que:
* Versão de software != responsabilidade da
aplicação ou serviço
● Multimaster
● Persistência de dados
● Namespaces
● Controle de Permissão
● Monitoria
● Pod Affinity e Pod Anti-
affinity
12. Controle/Autorização
● RBAC - API - Usuários
● ABAC - Policies
● NODE - Kubelet
● Webhook
Cultura do todo mundo responsável x Todo mundo
com o mesmo conhecimento
● Multimaster
● Persistência de dados
● Namespaces
● Controle/Autorização
● Monitoria
● Pod Affinity e Pod
Anti-affinity
13. Monitoria & Logs
Monitoramento e coleta de logs é sempre uma
questão necessária. Hoje contamos com diversos
itens que podem auxiliar , incluindo ferramentas
pagas e Open Source como por exemplo :
● Dynatrace;
● Prometheus;
● Fluentd;
● New Relic.
● Multimaster
● Persistência de dados
● Namespaces
● Controle/Autorização
● Monitoria
● Pod Affinity e Pod Anti-
affinity
14. Pod Affinity e Pod Anti-Affinity
Através de seletores posso indicar o nível de
proximidade entre as aplicações e serviços e
indicar nós específicos para as pods.
● Multimaster
● Persistência de dados
● Namespaces
● Controle/Autorização
● Monitoria
● Pod Affinity e Pod
Anti-affinity
15. Integrações são bem vindas (mas com
cuidado!)
● Istio - controle, descoberta de serviços, segurança e
conexão dos microservices;
● JX - Jenkins integrado com Kubernetes e GitOps;
● Openshift;
● Plugins;
● Rancher.
16.
17. Como ser um bom
soldado
● Minikube;
● Minishift;
● Kops;
● Leia muito, muito mesmo - antes de fazer -
principalmente as docs oficiais.
#DICA