Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Kubernetes - Understand, Automate and Deliver

Kubernetes - Understand, Automate and Deliver

Overview and demonstrate of Kubernetes and its main features. I explain how you can use them and how to organize your microservices on Kubernetes. It was presented in Devday, event promoted by devisland.com (Presentation in PT-BR)
---
Visão geral e demonstração sobre Kubernetes e sues principais recursos. Eu apresento forma de utilizá-los e como organizar seus micro serviços dentro do Kubernetes. Foi apresentada no Devday, evento promovido pela devisland.com (Apresentação em PT-BR)

Wallison Marra

September 08, 2017
Tweet

More Decks by Wallison Marra

Other Decks in Technology

Transcript

  1. Necessidade de administrações complexas para ambientes baseados em contêineres. -

    Controle de portas. - Registro/Exposição de Serviços. - Gerenciamento de Volumes. - Balanceamento de Cargas. - Segurança (Vault secrets, configmaps). - Proxy. - Jobs. …. KUBERNETES
  2. Opensource criado pela Google em 2014. Primeira versão estável (1.0)

    publicada em Julho de 2015. Possui 756 Pull Requests abertos. 26k+ de Stars no Github. KUBERNETES
  3. 9k+ de Forks. 4k+ de Issues abertas. Uma nova versão

    é lançada mensalmente (em média). Comunidade em crescimento acelerado! =] Líder de mercado! KUBERNETES
  4. - Pods. - Replica Sets. - Deployments. - Services. -

    Ingresses. - Etc... KUBERNETES - FEATURES
  5. Grupos voláteis onde os containers são alocados no cluster. Podem

    conter um ou mais containers. Cria-se uma rede local para comunicação entre os contêineres. KUBERNETES – PODS
  6. Orquestrador de Pods. - Controle de versões dos containers. -

    Capacidade (qtd mínima, desejada e máxima). - Failover. - Auto Scaling. - Drying connection. (Replica Sets é um recurso sucessor ao Replication Controller). KUBERNETES – REPLICA SETS
  7. Deployments disponibilizam formas declarativas para criações e alterações de Pods

    e ReplicaSets, mantendo o controle sobre estes recursos. - Create. - Updade. - Rollback. - Update History. DEPLOYMENTS
  8. São recursos de service discovery disponíveis nativamente no Kubernetes. -

    Camada abstrata para acesso aos Pods. - Seletores através de labels registrados nos Pods. - Expôe serviços privados e públicos: - Intra cluster. - Loadbalancers. SERVICES
  9. Service Service nginxapp:80 nodejsapp:3000 label: { app:nginx } label: {

    app:nodejs } Containers selector: { app:nginx } selector: { app:nodejs } SERVICES
  10. Kubernetes pode ser facilmente integrado com aplicações de CD/CI. E

    isso é possível devido a 2 mecanismos: - API Rest. - CLI (kubectl). Ambos com suporte a JSON. YAML somente para kubectl. CD/CI
  11. curl -X POST https://api.kubernetes.devday.com/apis/extensions/v1beta1/namespaces/default/ deployments -H 'authorization: Basic AUIHSIDUHOAS_YOUR_K8S_KEY_647AUHSGDUS=' …

    -d { your_json} curl -X POST https://api.kubernetes.devday.com/api/v1/namespaces/default/services - H 'authorization: Basic AUIHSIDUHOAS_YOUR_K8S_KEY_647AUHSGDUS=' … -d { your_json} CD/CI
  12. Recurso abstrato para mapeamento de rotas permitindo a distribuição das

    requisições recebidas: - Basea-se em rotas de domínios, sub-domínios, e paths. - YAML ou JSON. INGRESSES
  13. INGRESSES API WEB DATA ADMIN BACKOFFICE 1 BACKOFFICE 2 BACKOFFICE

    3 ORCHESTRATOR (DOCKER, SWARM, MESOS...) PRIVATE NETWORK INTERNET API.DOMAIN.COM DOMAIN.COM/WEB BACKOFFICE.DOMAIN.COM
  14. Containers Service traefik.proxy.com.br label: { app: traefik} INGRESSES nodejs-api:3000 label:

    { app: nodejs-api } python-api:80 label: { app: python-api} go-api:80 label: { app: go-api} Java-api:8080 label: { app: java-api} php-api:80 label: { app: php-api}