O documento explica os conceitos fundamentais de Docker e Kubernetes, incluindo: 1) Docker permite isolar processos em contêineres leves para ganho de performance e escalabilidade; 2) Kubernetes é um sistema para automatizar a implantação e gerenciamento de contêineres em clusters, usando conceitos como pods, deployments, secrets e serviços. 3) Um exemplo prático mostra uma API Node.js implantada em um cluster Kubernetes no Azure.
ASP.NET Core + Kubernetes + Azure: Orquestrando containers na nuvem - .NET SP...Renato Groff
Apresentação sobre o uso integrado de ASP.NET Core, Kubernetes e o Microsoft Azure. Palestra realizada em 16/05/2018 durante evento promovido pelo grupo .NET SP em São Paulo-SP.
Apresentação Docker básico (história, comunidade, conceito, vm vs docker, comandos, dockerfile, docker compose, docker swarn, docker engine)
Para ver o slide em qualidade melhor, fazer o download
ASP.NET Core + Kubernetes + Azure: Orquestrando containers na nuvem - Develop...Renato Groff
Apresentação sobre o uso integrado de ASP.NET Core, Kubernetes e o Microsoft Azure através do serviço AKS (Azure Kubernetes Service). Palestra realizada em 25/06/2018 durante o evento AzureDevOpsNight, uma iniciativa promovida pelo grupo Developers-BR em São Paulo-SP.
ASP.NET Core + Kubernetes + Azure: Orquestrando containers na nuvem - .NET SP...Renato Groff
Apresentação sobre o uso integrado de ASP.NET Core, Kubernetes e o Microsoft Azure. Palestra realizada em 16/05/2018 durante evento promovido pelo grupo .NET SP em São Paulo-SP.
Apresentação Docker básico (história, comunidade, conceito, vm vs docker, comandos, dockerfile, docker compose, docker swarn, docker engine)
Para ver o slide em qualidade melhor, fazer o download
ASP.NET Core + Kubernetes + Azure: Orquestrando containers na nuvem - Develop...Renato Groff
Apresentação sobre o uso integrado de ASP.NET Core, Kubernetes e o Microsoft Azure através do serviço AKS (Azure Kubernetes Service). Palestra realizada em 25/06/2018 durante o evento AzureDevOpsNight, uma iniciativa promovida pelo grupo Developers-BR em São Paulo-SP.
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018Renato Groff
Apresentação realizada em um evento promovido pelo grupo Azure Talks na cidade de São Paulo-SP. Esta palestra focou na utilização de containers Docker em conjunto com tecnologias como ASP.NET Core 2.1, .NET Core 2.1 e serviços do Microsoft Azure (Azure Web App for Containers, Azure Kubernetes Services) com diversos exemplos práticos e dicas para projetos reais.
Palestra apresentada no QCON SP 2018 sobre como estender o Kubernetes para além de um orquestrador de containers, apresentando todos os componentes e seu uso além do tradicional
Docker de ponta a ponta - do Desenvolvimento à Nuvem - .NET SP - Outubro-2018Renato Groff
Apresentação realizada no dia 02/10/2018 em um evento promovido pelo grupo .NET SP na cidade de São Paulo-SP. Esta palestra na utilização de containers Docker em conjunto com tecnologias como ASP.NET Core 2.1, .NET Core 2.1 e serviços do Microsoft Azure (Azure Web App for Containers, Azure Kubernetes Services) com diversos exemplos práticos e dicas para projetos reais.
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020Renato Groff
Apresentação sobre o uso de Kubernetes como solução para orquestração de containers. Palestra realizada em 28/01/2020 em evento promovido pela comunidade .NET SP em São Paulo-SP.
Nesta apresentação faço uma abordagem prática sobre a tecnologia Docker e o seu uso, introduzo o usuário a visão geral de mercado de empresas que usam e fazem parte do ecossistema da tecnologia.
Trato desde o porque considerar usar a tecnologia até a implantação com sistemas distribuídos em cluster
Apresentação sobre o básico de Docker.
Build, Ship and Run Any Application Anywhere.
Docker Images, Docker registry, Docker Container, Docker store, Docker hub, dicas e problemas comuns.
Como utilizamos um serviço de cloud para validar nossas estimativas de escalabilidade. Rodando o sistema inteiro, mais clientes de teste, num cloud a baixíssimo custo.
Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...Renato Groff
Apresentação sobre o uso de Docker + Kubernetes no deployment de aplicações Web, com uma demonstração prática envolvendo o Azure Kubernetes Service e o ASP.NET Core. Palestra realizada durante o evento Open Source Night #1, que foi promovido pela comunidade .NET SP Professionals em 26/11/2018 na cidade de São Paulo-SP.
ASP.NET Core + Kubernetes + Azure - Community Bootcamp - Abril/2018Renato Groff
Apresentação sobre o uso integrado de ASP.NET Core, Kubernetes e o Microsoft Azure. Palestra realizada em 04/04/2018 durante o Community Bootcamp, evento promovido pela Microsoft em São Paulo-SP.
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018Renato Groff
Apresentação realizada em um evento promovido pelo grupo Azure Talks na cidade de São Paulo-SP. Esta palestra focou na utilização de containers Docker em conjunto com tecnologias como ASP.NET Core 2.1, .NET Core 2.1 e serviços do Microsoft Azure (Azure Web App for Containers, Azure Kubernetes Services) com diversos exemplos práticos e dicas para projetos reais.
Palestra apresentada no QCON SP 2018 sobre como estender o Kubernetes para além de um orquestrador de containers, apresentando todos os componentes e seu uso além do tradicional
Docker de ponta a ponta - do Desenvolvimento à Nuvem - .NET SP - Outubro-2018Renato Groff
Apresentação realizada no dia 02/10/2018 em um evento promovido pelo grupo .NET SP na cidade de São Paulo-SP. Esta palestra na utilização de containers Docker em conjunto com tecnologias como ASP.NET Core 2.1, .NET Core 2.1 e serviços do Microsoft Azure (Azure Web App for Containers, Azure Kubernetes Services) com diversos exemplos práticos e dicas para projetos reais.
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020Renato Groff
Apresentação sobre o uso de Kubernetes como solução para orquestração de containers. Palestra realizada em 28/01/2020 em evento promovido pela comunidade .NET SP em São Paulo-SP.
Nesta apresentação faço uma abordagem prática sobre a tecnologia Docker e o seu uso, introduzo o usuário a visão geral de mercado de empresas que usam e fazem parte do ecossistema da tecnologia.
Trato desde o porque considerar usar a tecnologia até a implantação com sistemas distribuídos em cluster
Apresentação sobre o básico de Docker.
Build, Ship and Run Any Application Anywhere.
Docker Images, Docker registry, Docker Container, Docker store, Docker hub, dicas e problemas comuns.
Como utilizamos um serviço de cloud para validar nossas estimativas de escalabilidade. Rodando o sistema inteiro, mais clientes de teste, num cloud a baixíssimo custo.
Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...Renato Groff
Apresentação sobre o uso de Docker + Kubernetes no deployment de aplicações Web, com uma demonstração prática envolvendo o Azure Kubernetes Service e o ASP.NET Core. Palestra realizada durante o evento Open Source Night #1, que foi promovido pela comunidade .NET SP Professionals em 26/11/2018 na cidade de São Paulo-SP.
ASP.NET Core + Kubernetes + Azure - Community Bootcamp - Abril/2018Renato Groff
Apresentação sobre o uso integrado de ASP.NET Core, Kubernetes e o Microsoft Azure. Palestra realizada em 04/04/2018 durante o Community Bootcamp, evento promovido pela Microsoft em São Paulo-SP.
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado | Setembro-2020Renato Groff
Slides de apresentação realizada no dia 03/09/2020 e focando na implementação e deployment de soluções escaláveis com Kubernetes, além de trazer diversas dicas, truques e exemplos práticos na orquestração de containers.
Containers para Software! A mais nova revolução, trazida ao mundo pela Dockers, rodando hoje na AWS. Venha conhecer esta inovadora e revolucionária tecnologia que vai mudar a forma como você desenvolve e implementa software.
Docker + Kubernetes + Azure: opções disponíveis para uso de Containers na nuv...Renato Groff
Apresentação sobre o uso de Docker e Kubernetes para a implementação de soluções a partir do Microsoft Azure. Palestra realizada em evento promovido pela XP Investimentos no dia 11/01/2020 em São Paulo-SP.
Construindo APIs REST escaláveis na nuvem com Docker e Kubernetes - DEVPIRA F...Renato Groff
Apresentação sobre o uso de Docker, Kubernetes e serviços do Microsoft Azure como Web App for Containers e AKS (Azure Kubernetes Service) no desenvolvimento de APIs REST escaláveis. Palestra realizada durante o DEVPIRA Festival, um evento promovido pela comunidade DevPiracicaba e que aconteceu em Piracicaba-SP no dia 01/12/2018.
Construindo aplicações escaláveis com ASP.NET Core, Docker e o Microsoft Azur...Renato Groff
Apresentação sobre o uso de ASP.NET Core, Docker e serviços do Microsoft Azure como Web App for Containers e AKS (Azure Kubernetes Service) no desenvolvimento de soluções Web escaláveis. Palestra realizada em meetup promovido pelo grupo .NET São Paulo em 26/07/2018 na cidade de São Paulo-SP.
Kubernetes - do Pod ao Deployment Automatizado - DevOps Professionals - Janei...Renato Groff
Apresentação sobre o uso integrado do Kubernetes com serviços como AKS (Azure Kubernetes Service), Azure Container Registry e Azure DevOps no deployment de soluções Web na nuvem. Palestra realizada em conjunto com o MVP Milton Câmara Gomes, durante evento promovido pela comunidade DevOps Professionals em 28/01/2019 na cidade de São Paulo-SP.
Apresentação Docker básico (história, comunidade, conceito, vm vs docker, comandos, dockerfile, docker compose, docker swarn, docker engine)
Para ver o slide em qualidade melhor, fazer o download
Construindo aplicações Web escaláveis com Docker e o Microsoft Azure - Azure ...Renato Groff
Apresentação sobre o uso de Docker e serviços do Microsoft Azure como Web App for Containers e AKS (Azure Kubernetes Service) no desenvolvimento de soluções Web escaláveis. Palestra realizada em conjunto com o MVP Thiago Adriano em meetup promovido pelo grupo Azure Brasil em 28/08/2018 na cidade de São Paulo-SP.
Docker para Desenvolvedores .NET - .NET SP - Novembro-2018Renato Groff
Apresentação sobre o uso de Docker, Docker Compose, Kubernetes, Azure Web App for Containers e Azure Kubernetes Service no desenvolvimento de soluções baseadas no .NET Core/ASP.NET Core. Palestra realizada em 06/11/2018 em evento promovido pelo grupo .NET SP em São Paulo-SP.
Simplificando a montagem de ambientes de Dev/Testes com Docker - Interop Summ...Renato Groff
Slides de apresentação sobre o uso de containers Docker na montagem de ambientes de Dev/Testes realizada durante o Interop Summit Virtual, evento que aconteceu de forma online no dia 01/08/2020 (sábado).
Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...Renato Groff
Apresentação sobre o uso de Docker + Kubernetes no deployment de aplicações Web, com uma demonstração prática envolvendo o Azure Kubernetes Service e o ASP.NET Core. Palestra realizada em evento promovido pelo grupo DevOps Professionals em 19/09/2018 na cidade de São Paulo-SP.
3. “ É a abstração de infraestrutura que atua na virtualização em
nível de sistema operacional. Em termos simples, um contêiner é
capaz de isolar um processo do resto do sistema, de forma que ele
‘pense’ que está rodando em uma máquina completamente
separada, quando na verdade ele é só mais um processo sendo
executado pelo sistema operacional. ”
O que é?
4.
5. • Isolamento (limitações)
• Ganho de performance
• Utilização mais racional de recursos
• Rapidez no deployment (imagens Dockerfile)
• Menor dependência do ambiente
• Menor dependência do ambiente
Motivação para o uso
6. • Como escalar containers?
• Como garantir o trabalho coordenado entre os
diferentes containers de uma aplicação?
• Como detectar containers com falhas e corrigir
isso automaticamente?
Dificuldades
7.
8. “O Kubernetes (K8s ou kube) é um sistema de código
aberto para automatizar a implantação,
dimensionamento e gerenciamento de aplicativos em
contêiner. Ele agrupa contêineres que compõem um
aplicativo em unidades lógicas para facilitar o
gerenciamento e a descoberta ”
O que é?
10. Kubernetes: uma visão geral
• Também conhecido como K8s ou kube
• Desenvolvido originalmente pela Google
• Mantido pela Cloud Native Computing Foundation
• Escrito em Go
• Open source
11. Kubernetes: uma visão geral
• Cluster com máquina Master e Nodes
• Criação de objetos através de arquivos no formato YAML
• Diversas funcionalidades para gerenciamento
• kubectl (ferramenta de linha de comando)
• Minikube (ambiente de testes)
12. Kubernetes: gerenciamento de containers
• Orquestração
• Auto recuperação
• Reinício
• Replicação
• Escalonamento
13. Worker Node
Arquitetura
• Master
• Máquina que controla os Nodes (Nós)
• Responsável pelas atribuições de tarefas
aos Nodes
• Nodes
• Máquinas que realizam as tarefas
atribuídas pelo Master
Cluster
14. • Agente do nó primário (Primary node agent)
• Garante a inicialização e o correto funcionamento
dos containers
• É a “terceirização” do master
Kubelet
Arquitetura
Cluster
15. • Pods são instâncias de implantações , grupo de um ou mais containers implantados em um Node (Nó)
• Um Pod pode hospedar vários contêineres e volumes de armazenamento
• Uma implantação pode ter vários pods
• Podem ser interrompidos automaticamente com base no uso da CPU
• Os contêineres no mesmo pod têm acesso a volumes compartilhados
• Cada Pod tem seu IP exclusivo no cluster
• Os pods estão em funcionamento até
que alguém os destrua
• Todos os dados salvos no Pod
desaparecerão sem um armazenamento
persistente
Pod
Arquitetura
16. • Abstração de um Pod com recursos adicionais.
• É um modelo para a criação dos Pods.
• Conta com gerenciamento de estados.
• Lida com a atualização de seus respectivos Pods.
• Seu objetivo é manter os Pods em execução e
atualizá-los de uma maneira mais controlada.
• O Deployment pode aumentar as réplicas dos Pods.
Deployment
Arquitetura
17. • É um objeto, onde podemos armazenar informações confidenciais.
• Nos arquivos de secret, os valores são codificados em base64.
• Para usar um segredo, precisamos nos referir ao segredo em nosso Pod.
• Ou podemos colocá-lo dentro de um volume e montá-lo dinamicamente no contêiner.
• Segredos não são criptografados por padrão. Para criptografia, precisamos criar um EncryptionConfig.
Secret
Arquitetura
18. • Um serviço é responsável por tornar nossos Pods detectáveis dentro da rede ou expô-los à Internet
• Um serviço identifica os pods por seu LabelSelector
Existem 3 tipos de serviços:
• ClusterIP: Expõe o serviço em um IP interno do cluster. A escolha desse valor torna o Serviço acessível apenas
de dentro do cluster.
• NodePort : Expõe o serviço no IP de cada nó em uma porta estática. Um ClusterIP é criado automaticamente
para o qual o NodePort encaminha as solicitações. É possivel entrar em contato com o NodePort de fora do
cluster, solicitando <NodeIP>:<NodePort>
• Load Balancer: Expõe o serviço externamente usando o balanceador de carga do provedor do cluster. É criado
um NodePorte e ClusterIP automaticamente, para os quais o balanceador de carga externo é roteado.
Service
Arquitetura
19. • Controla quantas cópias idênticas de um Pod serão executadas e em
quais locais do cluster
Replication Controller
Arquitetura
21. Exemplo Prático
• API REST criada com o NodeJs
• Criação de um cluster através do Azure
Kubernetes Service (AKS)
github.com/astraube/kubernetes-nodejs
Ele não fornece uma VM, mas sim um ambiente virtual semelhante ao chroot, mas com um isolamento maior. Essa característica permite definir limitações de recursos por container, por exemplo, CPU, memória, I/O, entre outros.
Na prática, o SO convidado e o hypervisor são eliminados e o host entra em contato direto com as bibliotecas. Com essa ligação, os itens ficam portáveis para qualquer outro host que também possua o sistema de virtualização instalado. A consequência é a redução do tempo de deploy de uma aplicação ou infraestrutura.
Assim, é desnecessário ajustar o ambiente para que o serviço funcione corretamente. Ou seja, ele é sempre igual e é configurado uma vez. A partir disso, basta replicá-lo.
Ele não fornece uma VM, mas sim um ambiente virtual semelhante ao chroot, mas com um isolamento maior. Essa característica permite definir limitações de recursos por container, por exemplo, CPU, memória, I/O, entre outros.
Na prática, o SO convidado e o hypervisor são eliminados e o host entra em contato direto com as bibliotecas. Com essa ligação, os itens ficam portáveis para qualquer outro host que também possua o sistema de virtualização instalado. A consequência é a redução do tempo de deploy de uma aplicação ou infraestrutura.
Assim, é desnecessário ajustar o ambiente para que o serviço funcione corretamente. Ou seja, ele é sempre igual e é configurado uma vez. A partir disso, basta replicá-lo.
Kubectl:
uma ferramenta CLI para Kubernetes
Nó Mestre:
A máquina principal que controla os nós
Ponto de entrada principal para todas as tarefas administrativas
Ele lida com a orquestração dos nós do trabalhador
Nodes:
É uma máquina em Kubernetes
Esta máquina que executa as tarefas solicitadas. Cada nó é controlado pelo nó master
Executa contêineres dentro de PODs
É aqui que o mecanismo do Docker é executado e cuida do download de imagens e do início de contêineres
O master não tem acesso direto a todas as máquinas que compõem os nós do nosso cluster. Isso
seria um trabalho muito grande para um sistema que deve ser, em sua essência, simples e robusto.
Portanto, terceirizamos este trabalho para os kubelets, que vão ser responsáveis por receber estes
comandos e executá-los individualmente em suas próprias máquinas. Todo nó criado pelo master
deverá obrigatoriamente conter um kubelet funcional - isto faz parte da arquitetura do sistema e
não pode ser alterado.