Tutorial do Kubernetes para iniciantes: noções básicas, recursos, Archiarquitetura
Antes de começarmos este tutorial do Kubernetes, vamos aprender:
O que é o Kubernetes?
Kubernetes é um sistema de gerenciamento de contêineres desenvolvido na plataforma Google. Kubernetes ajuda a gerenciar aplicativos em contêineres em vários tipos de ambientes físicos, virtuais e em nuvem. O Google Kubernetes é uma ferramenta de contêiner altamente flexível para fornecer consistentemente aplicativos complexos executados em clusters de centenas a milhares de servidores individuais.
Por que você precisa de contêineres?
O usuário da Internet de hoje nunca aceita o tempo de inatividade. Portanto, os desenvolvedores precisam encontrar um método para realizar manutenção e atualização sem interromper seus serviços.
Portanto container, que são ambientes isolados. Inclui tudo o que é necessário para a execução do aplicativo. Isso torna mais fácil para um desenvolvedor editar e implantar aplicativos. Além disso, a conteinerização tornou-se um método preferido para empacotar, implantar e atualizar aplicativos web.
Quais tarefas são executadas pelo Kubernetes?
Kubernetes é o kernel Linux usado para sistemas distribuídos. Ele ajuda você a abstrair o hardware subjacente dos nós (servidores) e oferece uma interface consistente para aplicativos que consomem o conjunto compartilhado de recursos.
Por que usar o Kubernetes?
Kubernetes ajuda você a controlar a alocação de recursos e gerenciamento de tráfego para aplicativos e microsserviços em nuvem. Também ajuda a simplificar vários aspectos das infra-estruturas orientadas para serviços. O Kubernetes permite garantir onde e quando os aplicativos em contêineres são executados e ajuda a encontrar recursos e ferramentas com os quais deseja trabalhar.
Recursos do Kubernetes
Aqui estão os recursos essenciais do Kubernetes:
- Programação Automatizada
- Capacidades de autocura
- Lançamentos e reversão automatizados
- Dimensionamento horizontal e balanceamento de carga
- Oferece consistência de ambiente para desenvolvimento, teste e produção
- A infraestrutura é fracamente acoplada a cada componente e pode atuar como uma unidade separada
- Fornece uma maior densidade de utilização de recursos
- Oferece recursos prontos para empresas
- Gerenciamento centrado em aplicativos
- Infraestrutura autoescalável
- Você pode criar uma infraestrutura previsível
Noções básicas do Kubernetes
Agora, neste tutorial do Kubernetes, aprenderemos alguns princípios básicos importantes do Kubernetes:
-
Cluster
É uma coleção de hosts (servidores) que ajuda você a agregar seus recursos disponíveis. Isso inclui RAM, CPU, RAM, disco e seus dispositivos em um pool utilizável.
-
Mestre
O master é uma coleção de componentes que compõem o painel de controle do Kubernetes. Esses componentes são usados para todas as decisões de cluster. Inclui agendamento e resposta a eventos de cluster.
-
Node
É um host único que é capaz de rodar em um ambiente físico ou máquina virtual. Um nó deve executar kube-proxy, minikube e kubelet, que são considerados parte do cluster.
-
Namespace
É um cluster ou ambiente lógico. É um método amplamente utilizado para definir o acesso ou dividir um cluster.
Kubernetes Archiarquitetura
Abaixo está um diagrama detalhado da arquitetura do Kubernetes:
Nó mestre
O nó mestre é o primeiro e mais vital componente responsável pelo gerenciamento do cluster Kubernetes. É a porta de entrada para todos os tipos de tarefas administrativas. Pode haver mais de um nó mestre no cluster para verificar a tolerância a falhas.
O nó mestre possui vários componentes como API Server, Controller Manager, Scheduler e ETCD. Vamos ver todos eles.
Servidor de API: O servidor API atua como um ponto de entrada para todos os comandos REST usados para controlar o cluster.
Scheduler
O escalonador agenda as tarefas para o nó escravo. Ele armazena as informações de uso de recursos para cada nó escravo. É responsável pela distribuição da carga de trabalho.
Também ajuda a rastrear como a carga de trabalho é usada nos nós do cluster. Ajuda você a colocar a carga de trabalho nos recursos que estão disponíveis e a aceitar a carga de trabalho.
etc.
Os componentes do etcd armazenam detalhes de configuração e valores corretos. Ele se comunica com a maioria dos componentes para receber comandos e trabalhar. Ele também gerencia regras de rede e atividades de encaminhamento de porta.
Nós de trabalho/escravo
Os nós de trabalho são outro componente essencial que contém todos os serviços necessários para gerenciar a rede entre os contêineres, comunicar-se com o nó mestre, o que permite atribuir recursos aos contêineres programados.
- Kubelet: obtém a configuração de um Pod do servidor API e garante que os contêineres descritos estejam funcionando.
- Contêiner Docker: Estivador o contêiner é executado em cada um dos nós de trabalho, que executa os pods configurados
- Proxy Kube: O proxy Kube atua como um balanceador de carga e proxy de rede para executar serviço em um único nó de trabalho
- Pods: um pod é uma combinação de um ou vários contêineres que são executados logicamente juntos em nós
Outras terminologias importantes
Controladores de replicação
Um controlador de replicação é um objeto que define um modelo de pod. Ele também controla parâmetros para dimensionar réplicas idênticas do Pod horizontalmente, aumentando ou diminuindo o número de cópias em execução.
Conjuntos de replicação
Os conjuntos de replicação são uma interação no design do controlador de replicação com flexibilidade na forma como o controlador reconhece os pods que deve gerenciar. Ele substitui os controladores de replicação devido à sua maior capacidade de seleção de replicação.
implantações
A implantação é uma carga de trabalho comum que pode ser criada e gerenciada diretamente. A implantação usa o conjunto de replicação como um bloco de construção que adiciona o recurso de gerenciamento do ciclo de vida.
Conjuntos com estado
É um controle de pod especializado que oferece ordenação e exclusividade. Ele é usado principalmente para ter controle refinado, que você precisa especificamente em relação à ordem de implantação, rede estável e dados persistentes.
Conjuntos de Daemons
Os conjuntos daemon são outra forma especializada de controlador de pod que executa uma cópia de um pod em cada nó do cluster. Este tipo de controlador de pod é um método eficaz para implantar pods que permite realizar manutenção e oferece serviços para os próprios nós.
Kubernetes x Docker Swarm
Aqui estão diferenças importantes entre Kubernetes x Docker.
Parâmetro | Docker swarm | Kubernetes |
---|---|---|
Escala | Sem escalonamento automático | Escala automática |
Balanceamento de carga | O balanceamento de carga automático | Defina manualmente suas configurações de balanceamento de carga |
Compartilhamento de volume de armazenamento | Compartilha volumes de armazenamento com qualquer outro contêiner | Compartilha volumes de armazenamento entre vários contêineres dentro do mesmo pod |
Uso de ferramenta de login e monitoramento | Use umrd ferramenta de festa como ELK | Fornece uma ferramenta integrada para registro e monitoramento. |
Instalação | Fácil e rápido | Complicado e demorado |
GUI | GUI não disponível | GUI está disponível |
Escalabilidade | A expansão é mais rápida que o K8S, mas a força do cluster não é tão robusta | A expansão é lenta em comparação com o Swarm, mas garante um estado de cluster mais forte O balanceamento de carga requer configuração manual do serviço |
Balanceamento de carga | Fornece uma técnica integrada de balanceamento de carga | Agendamento de processos para manter serviços durante a atualização |
Atualizações e reversões Registro e monitoramento de volumes de dados | Atualizações progressivas e monitoramento da integridade do serviço. | Compartilhado apenas com contêineres nas mesmas ferramentas de registro e monitoramento integradas do pod. |
Vantagens do Kubernetes
- Fácil organização do serviço com pods
- É desenvolvido pelo Google, que traz anos de valiosa experiência no setor para a mesa
- Maior comunidade entre ferramentas de orquestração de contêineres
- Oferece uma variedade de opções de armazenamento, incluindo locais, SANs e nuvens públicas
- Adere aos princípios da infraestrutura imutável
- Kubernetes pode executar bare metal local, OpenStack e nuvens públicas Google, Azure, AWS, etc.
- Ajuda você a evitar problemas de bloqueio de fornecedor, pois pode usar qualquer API ou serviço específico do fornecedor, exceto onde o Kubernetes fornece uma abstração, por exemplo, balanceador de carga e armazenamento.
- A conteinerização usando kubernetes permite que o software de pacote atenda a esses objetivos. Ele permitirá que aplicativos que precisam ser lançados e atualizados sem qualquer tempo de inatividade.
- O Kubernetes permite garantir que os aplicativos em contêineres sejam executados onde e quando você quiser e ajuda você a encontrar recursos e ferramentas com os quais deseja trabalhar.
Desvantagens do Kubernetes
- O painel do Kubenetes não é tão útil quanto deveria ser
- Kubernetes é um pouco complicado e desnecessário em ambientes onde todo o desenvolvimento é feito localmente.
- A segurança não é muito eficaz.
Resumo
- Container ajuda uma organização a realizar manutenção e atualização sem interromper os serviços
- Kubernetes é um exemplo de sistema de gerenciamento de contêineres desenvolvido na plataforma Google.
- A maior vantagem de usar o Kubernetes é que ele pode executar OpenStack local, nuvens públicas do Google, Azure, AWS, etc.
- Kubernetes oferece recursos automatizados de agendamento e autocorreção.
- Cluster, master, node e namespace são princípios básicos importantes do kubernetes
- O nó mestre e o nó de trabalho são componentes importantes da arquitetura Kubernetes.
- Controladores de replicação, conjuntos de replicação, implantações, conjuntos com estado, conjuntos de daemon são outros termos importantes usados no Kubernetes.
- O Docker Swarm não permite escalonamento automático, enquanto o Kubernetes permite escalonamento automático.
- A maior desvantagem do Kubenetes é que seu painel não é muito útil e eficaz