Introdução ao Kubernetes
1. Visão geral
Neste tutorial, teremos uma breve introdução teórica ao Kubernetes. Em particular, discutiremos os seguintes tópicos:
-
Necessidade de uma ferramenta de orquestração de contêiner
-
Recursos do Kubernetes
-
Arquitetura Kubernetes *API do Kubernetes
Para um entendimento mais aprofundado, também podemos dar uma olhada na official documentation.
===* 2. Orquestração de contêineres *
Neste link:/dockerizing-spring-boot-application [artigo anterior], já discutimos alguns conceitos básicos do Docker, além de como empacotar e implantar aplicativos personalizados.
Em poucas palavras, o Docker é um tempo de execução do contêiner: fornece recursos para empacotar, enviar e executar instâncias únicas de um aplicativo de maneira padronizada, também conhecida como contêiner.
No entanto, à medida que a complexidade aumenta, novas necessidades aparecem; implantação automatizada, orquestração de contêineres, agendamento de aplicativos, concessão de alta disponibilidade, gerenciamento de um cluster de várias instâncias de aplicativos e assim por diante.
Existem algumas ferramentas disponíveis no mercado. No entanto, Kubernetes está se estabelecendo cada vez mais como um concorrente substancial.
===* 3. Recursos do Kubernetes *
O Kubernetes, em suma, é um sistema* para orquestrar aplicativos em contêineres em um cluster de nós, incluindo infraestrutura de rede e armazenamento *. Algumas das características mais importantes são:
-
Planejamento de recursos: garante que os Pods sejam distribuídos de maneira ideal em todos os nós disponíveis
-
Escalonamento automático: com o aumento da carga, o cluster pode alocar dinamicamente nós adicionais e implantar novos Pods neles
-
Autocorreção: o cluster supervisiona os contêineres e os reinicia, se necessário, com base em políticas definidas
-
Service-discovery: Pods e Services são registrados e publicados via DNS
-
Atualizações/reversões contínuas: suporta atualizações contínuas com base na reimplantação sequencial de Pods e contêineres
-
Gerenciamento de segredo/configuração: suporta manipulação segura de dados confidenciais, como senhas ou chaves de API *Orquestração de armazenamento: são suportadas várias soluções de armazenamento de terceiros, que podem ser usadas como volumes externos para manter os dados
===* 4. Entendendo o Kubernetes *
O* _ Master * mantém o estado desejado de um cluster. Quando interagimos com nosso cluster, e. g. usando a interface da linha de comando _kubectl