Kubernetes - Arquitetura

Neste capítulo, discutiremos a arquitetura básica do Kubernetes.

Kubernetes - Arquitetura de Cluster

Conforme visto no diagrama a seguir, o Kubernetes segue a arquitetura cliente-servidor. Onde, temos o master instalado em uma máquina e o nó em máquinas Linux separadas.

Os principais componentes do mestre e do nó são definidos na seção a seguir.

Kubernetes - componentes da máquina mestre

A seguir estão os componentes da máquina mestre do Kubernetes.

etcd

Ele armazena as informações de configuração que podem ser usadas por cada um dos nós do cluster. É um armazenamento de valor de chave de alta disponibilidade que pode ser distribuído entre vários nós. Ele pode ser acessado apenas pelo servidor da API Kubernetes, pois pode conter algumas informações confidenciais. É uma Loja de valores-chave distribuída acessível a todos.

Servidor API

Kubernetes é um servidor de API que fornece todas as operações no cluster usando a API. O servidor API implementa uma interface, o que significa que diferentes ferramentas e bibliotecas podem se comunicar prontamente com ele.Kubeconfigé um pacote junto com as ferramentas do lado do servidor que podem ser usadas para comunicação. Ele expõe a API Kubernetes.

Gerente de controle

Este componente é responsável pela maioria dos coletores que regula o estado do cluster e executa uma tarefa. Em geral, ele pode ser considerado um daemon que é executado em um loop não terminal e é responsável por coletar e enviar informações ao servidor API. Ele trabalha para obter o estado compartilhado do cluster e, em seguida, faz alterações para trazer o status atual do servidor para o estado desejado. Os controladores principais são controlador de replicação, controlador de terminal, controlador de namespace e controlador de conta de serviço. O gerenciador de controlador executa diferentes tipos de controladores para lidar com nós, terminais, etc.

Agendador

Este é um dos principais componentes do mestre Kubernetes. É um serviço em mestre responsável por distribuir a carga de trabalho. Ele é responsável por rastrear a utilização da carga de trabalho nos nós do cluster e, em seguida, colocar a carga de trabalho na qual os recursos estão disponíveis e aceitar a carga de trabalho. Em outras palavras, esse é o mecanismo responsável por alocar pods aos nós disponíveis. O programador é responsável pela utilização da carga de trabalho e alocação do pod para o novo nó.

Kubernetes - componentes do nó

A seguir estão os principais componentes do servidor Node que são necessários para se comunicar com o mestre do Kubernetes.

Docker

O primeiro requisito de cada nó é o Docker, que ajuda a executar os contêineres de aplicativos encapsulados em um ambiente operacional relativamente isolado, mas leve.

Serviço Kubelet

Este é um pequeno serviço em cada nó responsável por retransmitir informações de e para o serviço do plano de controle. Interage cometcdstore para ler detalhes de configuração e valores corretos. Este se comunica com o componente mestre para receber comandos e trabalhar. okubeleto processo então assume a responsabilidade por manter o estado de trabalho e o servidor do nó. Ele gerencia regras de rede, encaminhamento de porta, etc.

Serviço Kubernetes Proxy

Este é um serviço de proxy que roda em cada nó e ajuda a disponibilizar serviços para o host externo. Ele ajuda a encaminhar a solicitação para contêineres corretos e é capaz de realizar balanceamento de carga primitivo. Ele garante que o ambiente de rede seja previsível e acessível e, ao mesmo tempo, isolado. Ele gerencia pods em nós, volumes, segredos, criando verificação de integridade de novos contêineres etc.

Kubernetes - Estrutura mestre e de nós

As ilustrações a seguir mostram a estrutura do mestre e do nó do Kubernetes.