O Kubernetes é o software de código aberto mais popular que automatiza os processos de desenvolvimento de contêineres.
De acordo com o estudo anual da Cloud Native Computing Foundation (CNCF), 96% das organizações estão usando K8s ou considerando usá-los. Se você acompanhar de perto, 5,8 milhões de desenvolvedores em todo o mundo usam o Kubernetes, o que representa 31% dos desenvolvedores de back-end em todo o mundo.
Ele é preferido por sua capacidade de alavancar a tecnologia por meio de escalabilidade aprimorada, disponibilidade e tempo de implantação curto. Enquanto muitos desenvolvedores iniciam sua trajetória de contêineres com o Docker (uma ferramenta abrangente que depende da CLI para interagir com os contêineres, um por vez), o K8s fornece abstrações de alto nível para você definir aplicativos e sua infraestrutura por meio de esquemas que você pode colaborar.
Se você é novo no Kubernetes, este artigo foi especialmente adaptado para ajudá-lo em suas partes introdutórias e compartilhar insights para você começar. Você aprenderá como o K8s pode ajudá-lo como desenvolvedor a turbinar seus produtos digitais.
últimas postagens
O que é o Kubernetes e por que você precisa dele?
O Kubernetes é um mecanismo de coordenação (framework) de código aberto usado para automatizar a implantação, dimensionamento e gerenciamento de aplicativos em contêineres; isso inclui lidar com previsibilidade e disponibilidade.
Simplificando, vamos pensar em um aplicativo que você conteinerizou. Para atender os usuários do seu aplicativo, você precisa executar vários contêineres. A preocupação surge quando você precisa gerenciar esses contêineres. Os recipientes podem não estar necessariamente na mesma máquina, tornando-se mais complicado. Então, qual é a solução para este problema?
O Kubernetes vem em seu socorro, fornecendo uma maneira eficiente de lidar com todos esses processos perfeitamente. Embora você possa comparar o K8s a um mecanismo de contêiner como o Docker, é um orquestrador de contêiner. Como desenvolvedor iniciante, você não precisa se preocupar em como o K8s faz a orquestração. Você provavelmente não configurará um cluster K8s para seu aplicativo; mais sobre isso em breve.
No entanto, você interagirá com clusters configurados por sua equipe de infraestrutura. Familiarizar-se com os objetos com os quais você estará interagindo é crucial. Mas antes de fazer isso, você precisará de uma compreensão de alto nível de sua arquitetura para entender o que acontece por baixo dela.
Recursos do Kubernetes
O Kubernetes possui vários recursos com um amplo escopo de recursos para executar contêineres e outras infraestruturas associadas. Aqui está uma lista:
Arquitetura do Kubernetes
Em sua essência, a arquitetura do Kubernetes compreende um único nó mestre e dois nós de trabalho. O nó mestre dá as ordens no cluster, enquanto os nós de trabalho (escravos) executam os aplicativos conforme decidido pelo mestre.
Fonte: kubernetes.io
Aqui está mais um detalhamento.
O(s) nó(s) mestre(s)
O nó mestre determina os estados do cluster e decide as ações de cada nó específico. Vários processos são necessários para configurar o nó mestre.
Todas as comunicações do cluster são baseadas aqui. É o gateway que permite que todos os componentes do cluster troquem informações. Ele expõe a API do Kubernetes. Há dois papéis principais desempenhados aqui. O primeiro é um ponto de entrada que permite aos usuários interagir com o cluster. Por exemplo, enviar solicitações ao usar Kubectl. Segundo, gatekeeping para autenticar e validar solicitações. Nesse caso, apenas alguns usuários podem executar solicitações.
O planejador designa aplicativos ou objetos de carga de trabalho do Kubernetes ao nó do trabalhador. Aqui, o agendador coloca pods em nós com base nos requisitos de recursos. E quando você fala em pods, é apenas uma pequena unidade de implantação no Kubernetes.
Esta unidade mantém clusters como falhas de nó para manter o número correto de pods. Ele detecta alterações no estado do cluster, como pods morrendo, e tenta restaurar o pod ao seu estado original. Por exemplo, se um pod morrer acidentalmente, o gerenciador do controlador solicitará ao escalonador que ratifique qual nó ativa um novo pod como substituto e o kubelet ativa um novo pod.
Também é referido como o cérebro do cluster. A unidade é um armazenamento de valor de chave para a configuração do cluster. Isso significa que todas as alterações de cluster são feitas aqui. Você pode fazer backup de um cluster salvando o armazenamento distribuído de chave-valor. No entanto, observe que apenas os dados de estado do cluster são armazenados aqui, não os dados do aplicativo. Esta unidade é especificamente para manter as informações de estado do cluster e disponibilizá-las para os processos anteriores, dando-lhes conhecimento sobre o cluster.
O(s) nó(s) escravo(s)
Cada nó escravo é instalado com três processos de nó que permitem que os K8s interajam com ele e gerem pods separadamente em cada nó. Os processos necessários são:
Este é o serviço principal do Kubernetes que executa a execução para a camada de execução do contêiner. Se você retirar esta unidade, o Kubernetes nada mais é do que uma API REST endossada com um armazenamento de chave-valor. Por padrão, o K8s executa o aplicativo de contêiner. Os contêineres são sempre isolados uns dos outros e do sistema host subjacente. Isso provou ser analítico para separar o gerenciamento de aplicativos individuais entre si e a infraestrutura física ou virtual.
Embora o controle de admissão da API possa rejeitar pods ou adicionar restrições adicionais, kubelet é o ratificador final de quais pods são executados em um nó específico, não agendadores ou Daemonsets. Para resumir, os kubelets interagem com o nó e o contêiner. Ele também usa arquivos de configuração e ativa pods usando o tempo de execução do contêiner.
Esta seção executa contêineres. Por exemplo, você pode usar Docker, rkt ou conatinered um pouco mais na seção como funcionam os contêineres.
Esta unidade fornece uma camada de abstração para grupos de pods de nós em políticas comuns, como no caso do balanceamento de carga. Todos os nós aplicam o Kube-proxy para fornecer um endereço IP virtual para clientes que acessam pods dinâmicos. Essa estrutura é a solução para o balanceamento de carga, mantendo uma sobrecarga de baixo desempenho.
Como funciona a conteinerização
A conteinerização envolve a virtualização de todas as peças necessárias de um aplicativo de software em uma unidade. Abaixo dos contêineres, há uma coleção de bibliotecas, binários e todas as configurações de aplicativos necessárias. Mas eles não incluem recursos de kernel ou hardware virtualizado.
Por fim, execute os tempos de execução do contêiner ‘no topo’ que descrevem os recursos. Como os contêineres incluem apenas os componentes básicos e as dependências do aplicativo, eles são leves e, portanto, mais rápidos, ao contrário de outras máquinas virtuais.
Leia também: Containers vs. Máquinas Virtuais: Explicando as Diferenças
Como instalar e configurar o Kubernetes
Passei tanto tempo sendo teórico; a seção em cascata será tática e envolverá alguma experiência prática em contêineres. Este tutorial cobre particularmente a instalação no sistema operacional Windows.
Existem várias maneiras de fazer instalações ao usar o Windows; você pode optar pela linha de comando ou pela interface gráfica do usuário. No entanto, você deve garantir que atende às seguintes especificações exigidas.
Seu hardware precisa de um nó mestre com pelo menos 2 GB de memória e 700 MB para o nó do trabalhador. Para os requisitos de software, Hype-v, Docker para desktop, endereço Mac exclusivo e um UUID de produto exclusivo para cada nó. Aqui está a abordagem passo a passo.
Instalando e Configurando o Hyper-V
Hyper-V é o software de virtualização padrão do Windows. Essencialmente, é um VirtualBox com esteróides. Ele permite que você gerencie máquinas virtuais na GUI da Microsoft ou na linha de comando. Para ativar o Hyper-V, siga estas etapas.
Ocasionalmente, seu PC pode reiniciar várias vezes para garantir que tudo esteja configurado corretamente. Você pode verificar o sucesso da instalação digitando o seguinte comando no Power Shell.
Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V
Confirme se sua tela está preenchida com um estado ‘ativado’.
Instalando o Docker
Como você aprendeu, o K8s é uma ferramenta de orquestração de contêiner construída sobre contêineres; neste caso, o Docker é uma boa escolha. O K8s se comunica com o Docker e gerencia tudo em nível empresarial. Movimente-se baixando o Docker para Windows. Se você está se perguntando por que é necessário usar o Docker Desktop, ele é o preferido para simplificar o desenvolvimento, envio e execução de aplicativos dockerizados (em contêineres).
Também é a maneira mais rápida de criar aplicativos do Docker no Windows usando o Hyper-V e a rede. Após a instalação bem-sucedida, o Docker estará sempre acessível em qualquer terminal, desde que esteja em execução. Para obter um guia detalhado sobre a instalação, você pode conferir a documentação oficial do Docker. Se você encontrar problemas como ícones ocultos após a instalação, o problema pode ser resolvido reiniciando a máquina.
Instalando o Kubernetes
A GUI do Docker permite definir configurações, instalar e habilitar o Kubernetes. Para instalar o K8s, siga estas etapas.
O Docker instalará alguns pacotes e dependências adicionais. O processo leva cerca de cinco a dez minutos, com base na velocidade da sua internet. Você pode usar o aplicativo Docker para garantir que tudo está funcionando corretamente.
Como os aplicativos do Kubernetes podem ser implantados usando a CLI, pode ser necessário instalar o painel do K8s, pois ele não é instalado por padrão. Instale o painel usando as etapas a seguir.
Para acessar o painel, execute o seguinte comando no Power Shell (não no CMD)
- Copie o token gerado e execute kubectl proxy.
Se você chegou até aqui, bravo, sua tela deve ser preenchida com o painel do K8s. Agora você pode gerenciar seus aplicativos sem fazer o trabalho pesado usando a CLI.
Leia também: Como instalar o Kubernetes no Ubuntu 18
Como criar e gerenciar o cluster do Kubernetes
Se você seguiu até aqui, deve ter instalado o Kubernetes com sucesso em seu host. Em seguida, siga estas etapas para criar e executar um gerenciamento simples em seu cluster:
Embora esta seja apenas uma visão geral do processo de criação do cluster, ela envolve muitas etapas que envolvem vários comandos. Aqui está o guia de documentação oficial sobre como criar clusters antes da implantação. Deve ser sua mão orientadora.
Como implantar seu primeiro aplicativo usando o Kubernetes
O comando mais comum ao usar o K8s é kubectl action resource, que permite executar ações específicas, como criar ou excluir um recurso especificado.
Se você estiver travado, poderá usar –help após um subcomando específico para obter informações adicionais.
Por exemplo, o Kubernetes obtém nós –help. Implante seu primeiro aplicativo K8s usando o comando kubectl create deployment Kubernetes-bootcamp –image=gcr.io/google-samples/Kubernetes-bootcamp:v1.
Palavras Finais
Este guia foi um ponto de entrada para a tecnologia Kubernetes. Você aprendeu os benefícios, recursos e arquitetura do Kubernetes. Felizmente, você pode ter que consultar alguns ponteiros (recursos externos) para prosseguir; explicou como as coisas funcionam sob o capô.
Embora possa parecer difícil entender toda a pilha de tecnologia como iniciante, esta postagem foi uma diretriz suave para você começar com o K8s. Você precisará de um pouco de prática para se sentir confiante no uso dessa tecnologia, por isso estou indicando a documentação oficial do Kubernetes como referência lado a lado. Quanto mais prática você tiver, mais rápido se tornará um especialista em K8s.
Em seguida, confira os tutoriais do Kubernetes para iniciantes dominarem.