Kubernetes – Orquestração de contêineres

Kubernetes também conhecido como K8S, é um sistema open source de orquestração de contêiner para automatização de deploy escalonamento e gerenciamento de aplicações. O nome Kubernetes é originário do grego, que significa timoneiro ou piloto, o projeto Kubernetes foi criado em 2014 pelo Google, o projeto combina mais de 15 anos de experiência  do Google na execução de cargas de trabalho de produção em grande escala. Kubernetes foi desenvolvido pensado na escalabilidade, performance e também na otimização dos Recursos usados para roda as aplicações, ele possui pontos principais e um deles é a sua capacidade para trabalhar com as muitas atualizações de uma aplicação, com ele o usuário pode fazer um agendamento da atualização e caso algo de errado ele desfaz tudo automaticamente.

Com o Kubernetes você pode trabalhar com um conjunto de contêineres é não só um ou dois, mas sim dezenas até centenas de contêineres iguais rodando uma única aplicação em uma rede própria balanceando as requisições.

Vantagens do Kubernetes

  • O K8s oferece uma plataforma completa para aplicações conhecidas como cloud-native;
  • Os seus componentes são executados em um cluster composto por três tipos de nós: Nodeetcd e Master;
  • O conjunto de todos os nós Master forma o chamado Control Plane, o qual é responsável por controlar tudo o que acontece dentro do cluster e monitorar o estado da aplicação;
  • Ele utiliza abstrações, como Pods e Deployments, chamadas de Objects para representar diferentes aspectos do estado de uma aplicação;
  • Esse estado pode ser alterado de duas formas: imperativa ou declarativa. A forma declarativa é considerada a mais ideal e utiliza arquivos no formato YAML que são enviados para a API;
  • A API do Kubernetes é a porta de entrada de um cluster, sendo utilizada tanto pela linha de comando quando pela interface web.

 

Instalação

Instalar e configurar o kubectl

A ferramenta de linha de comando Kubernetes, kubectl, permite executar comandos nos clusters Kubernetes. Você pode usar o kubectl para implantar aplicativos, inspecionar e gerenciar recursos de cluster e visualizar logs. Para obter uma lista completa das operações do kubectl, consulte Visão geral do kubectl.

 

Antes de você começar

Você deve usar uma versão do kubectl que esteja dentro de uma diferença menor de versão do seu cluster. Por exemplo, um cliente v1.2 deve trabalhar com o mestre v1.1, v1.2 e v1.3. O uso da versão mais recente do kubectl ajuda a evitar problemas imprevistos.

 

Instale o kubectl no Linux

Instalar o binário kubectl com curl no Linux

Faça o download da versão mais recente com o comando:

  • curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl

Para baixar uma versão específica, substitua a $(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt) parte do comando pela versão específica.

Por exemplo, para baixar a versão v1.18.0 no Linux, digite:

  • curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.18.0/bin/linux/amd64/kubectl

 

Torne o binário kubectl executável.

  • chmod +x ./kubectl

 

Mova o binário para o seu PATH.

  • sudo mv ./kubectl /usr/local/bin/kubectl

 

Teste para garantir que a versão que você instalou esteja atualizada:

  • kubectl version –client

 

Instalar usando o gerenciamento nativo de pacotes

Ubuntu, Debian ou HypriotOS

  • sudo apt-get update && sudo apt-get install -y apt-transport-https gnupg2
  • curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add –
  • echo “deb https://apt.kubernetes.io/ kubernetes-xenial main” | sudo tee -a /etc/apt/sources.list.d/kubernetes.list
  • sudo apt-get update
  • sudo apt-get install -y kubectl

 

Instalar usando outro gerenciamento de pacotes

Snap

Se você estiver no Ubuntu ou em outra distribuição Linux que suporte o gerenciador de pacotes de snap , o kubectl estará disponível como um aplicativo de snap .

  • snap install kubectl –classic
  • kubectl version –client