O Kubernetes é a solução open source para orquestração de contêineres capaz de gerenciar aplicativos em contêineres em vários hosts. Ele permite que os usuários implantem, mantenham e escalem aplicativos com facilidade em contêineres. O WSO2 API Manager é uma solução totalmente Open Source para gerenciar todos os aspectos do ciclo de vida de APIs e foi projetado para implantações escaláveis em massa.
DURANTE O WEBNÁRIO ABORDAREMOS:
Como implantar o WSO2 API Manager com o Analytics no Google Kubernetes Engine (GKE).
Escalonamento automático do WSO2 API Manager com base na carga de produção.
Como aplicar atualizações do WSO2 Update Manager (WUM) em um ambiente de produção Kubernetes.
Práticas recomendadas para implantar o WSO2 API Manager no Kubernetes.
On-demand: https://wso2.com/library/webinars/publicando-wso2-api-manager-no-kubernetes/
3. ● Introdução ao Kubernetes
● Por quê Kubernetes?
● K8s Deployment Architecture
● Demos
○ Deploy WSO2 API Manager with Analytics in Google Kubernetes
Engine (GKE)
○ Aplicar rolling updates no WSO2 API Manager com zero downtime
- wum update no gateway
○ Autoscaling do WSO2 API Manager Gateway baseado no load de
produção
● Melhores práticas no deploy do WSO2 API Manager em K8s
Agenda
3
5. Kubernetes
● Kubernetes (K8s) é um sistema de open source para gerenciar
aplicações "containerizada" em vários hosts, fornecendo mecanismos
básicos para implantação, manutenção e escalonamento de
aplicativos
● By Google
○ Borg, Omega, and Kubernetes - Lições aprendidas a partir de 3
sistemas de gerenciamento de container em uma década
○ https://ai.google/research/pubs/pub44843
5
8. ● Autohealing/ Autoscaling
○ Se um container falha no Docker, sua aplicação para de funcionar
○ K8s automaticamente iniciaria um novo container, e garantiria que
sua aplicação sempre tenha o número especificado de containers
executando.
○ K8s pode realizar o scale up/down dinamicamente baseado no
uso dos recursos (Horizontal Pod Autoscaling)
Por quê k8s? - Autohealing/Autoscaling
8
9. ● Service Discovery
○ Precisa escalar containers/reiniciar um existente? No docker, será
necessário lidar com os IPs, etc.
○ K8s provê uma abstração sobre os endereços de IP, e com isso
toda essa parte de IPs é realizada automática
○ Load Balancing de Endpoints e endereçamento consistent é
disponível OOTB
Por quê k8s? - Networking/Port Mapping
9
10. ● Roteamento Multi-host
○ Por padrão usa Bridge networking - limitada ao mesmo docker
host!
○ Um deployment real pode se estender entre múltiplos hosts
Por quê k8s? - Networking/Port Mapping...
10
12. ● Consistência de Storage
○ Docker volume mounts - limitado à máquina host do docker
○ K8s Persistent Volumes - funciona em várias máquinas, tem
suporte a multi cloud
○ Pode estender suporte para múltiplos Cloud Storage Service
Providers
Por quê k8s? - Storage
12
14. ● K8s Probes
○ Critérios definidos pelo usuário para determinar saúde e
prontidão dos serviços nos containers implantados;
○ K8s realiza o scaling, healing makes scaling, healing, e decisões
de eviction baseado nessas checagens;
Por quê k8s? - Health Checks e Monitoramento
14
15. ● Extensibilidade de Logging e Stats
○ K8s provê suporte extensivo e integração nativa a log analyzers e
sistema de monitoramento de métricas
■ Log Drivers
■ Prometheus
○ K8s possui um dashboard contendo informação de auditoria e
saúde do cluster
Por quê k8s? - Health Checks e Monitoramento...
15
16. ● K8s para um usuário final é uma REST API
○ Pode interagir com artefatos declarativos baseados em YAML ou
através de comandos imperativos diretos
Por quê k8s? - Orchestration and DevOps
16
17. ● K8s can schedule workloads based on resource availability
○ Cada workload pode definir os recursos que necessita para
cargas máximas e os recursos com os quais pode trabalhar em
média
Por quê k8s? - Resource Management
17
22. 22
Demo Agenda
• Deploy do WSO2 API Manager com Analytics no Google Kubernetes
Engine (GKE)
– Usando Helm Charts para o Pattern #1 com o gateway apartado
– Deploy NGINX Ingress Controller
– Acessar os Management Consoles
– Deploy a API de exemplo: PizzaShack API
• Aplicar rolling updates no WSO2 API Manager com zero downtime -
wum update no gateway
• Autoscaling do WSO2 API Manager Gateway baseado no load de
produção
23. Deploy WSO2 API Manager com
Analytics no Google Kubernetes Engine
(GKE)
24. ● Instalar gcloud-sdk
○ https://cloud.google.com/sdk/install
● Instalar kubectl (compatível with v1.15)
○ https://kubernetes.io/docs/tasks/tools/install-kubectl/
● Instalar Git
○ https://git-scm.com/book/en/v2/Getting-Started-Installing-Git
● Instalar Helm
● https://helm.sh/docs/intro/install/
● Criar um projeto no Google Cloud Platform
○ https://cloud.google.com/resource-manager/docs/creating-managing-pro
jects
In order to use WSO2 Kubernetes resources, you need an active WSO2 subscription.
If you do not possess an active WSO2 subscription already, you can sign up for a
WSO2 Free Trial Subscription from here.
Instalar Pré-Requisitos
24