Kubernetes

Docente: Professor Joaquim

Discente: Daniel Oliveira Araújo

Centro de Ciências e Tecnologia

Disciplina: Engenharia de Software Ágil.

 

Especialização em Engenharia de Software com Devops

O que é?

O Kubernetes é uma tecnologia para containers que otimiza a gestão de espaço de dados, além de otimizar a velocidade de processos — fundamental para empresas que executam aplicativos na nuvem.

Docker

O Docker é a ferramenta padrão para deployar/implementar uma aplicação usando containers. Em outras palavras, o Docker se baseia no formato mais popular para empacotar uma aplicação e é a container engine mais usada.

Docker

A grande vantagem de um container é encapsular todas as dependências necessárias para rodá-lo, como bibliotecas, o runtime e o código da aplicação. Tudo isso em um único pacote chamado de imagem, que pode ser versionado e fácil de distribuir.

PROBLEMAS

Chegou Kubernets!

  • Criado pelo Google com grandes contribuições da Red Hat e hoje é um dos projeto open source mais populares.
  • Do grego  significa "timoneiro" ou "piloto" (o navio de carga pilotado pelo Kubernetes).
  • Atualmente mantido pela Cloud Native Computing Foundation, o Kubernetes gerencia os clusters que contêm os hosts que executam as aplicações Linux.
  • Às vezes abreviado como K8s com o 8 representando o número de letras entre o "K" e o "s"

Como funciona?

  • Da mesma forma que agrupamos objetos que precisam ser enviados de um local para o outro em containers, também agrupamos nossos códigos em um container, que pode ser executado em diversos locais.
  • Arquitetura de microsserviços e incorporam práticas que possibilitam a automação de todo o ciclo de vida da aplicação.
  • Sugere a ideia de que aplicações devem ser compostas por partes menores e independentes chamadas de serviços.

Como funciona?

  • A ideia é que cada serviço seja especializado e ofereça uma API para se comunicar com outros serviços.

Estado da aplicação

  • O Estado Atual da aplicação descreve a realidade.
  • O Estado Desejado descreve como o time ou a pessoa responsável pela aplicação deseja que ela esteja naquele momento.

Estado da aplicação

  • O Kubernetes implementa uma série de loops que ficam constantemente verificando se o estado atual é igual ao estado desejado. Esse papel é desempenhado pelos chamados Controllers.
  • Quando um controller identifica que o estado atual é diferente do estado desejado, ele aciona outros componentes do sistema para fazer novamente com que o estado atual se iguale ao estado desejado.
     

Composição do Kubernetes

  • O Kubernetes é composto por uma série de componentes, cada um com um propósito diferente. Para garantir que exista uma separação de responsabilidades e que o sistema seja resiliente

Termos referentes ao Kubernetes

  • Node - O primeiro tipo é chamado de Node. O papel de um Node é executar os contêineres que encapsulam as aplicações sendo gerenciadas pelo K8s. O conjunto de Nodes forma o que chamamos de Workers.
  • etcd - Nome da base de dados distribuída que é utilizada para armazenar tudo o que está acontecendo dentro do cluster, incluindo o estado da aplicação.

Termos referentes ao Kubernetes

  • Master -  É nesse tipo de nó que os principais componentes do Kubernetes são executados, como o Scheduler, o qual tem a responsabilidade de controlar a alocação de recursos no cluster.
  • O conjunto de nós Master forma o que pode ser considerado o cérebro de um cluster Kubernetes: o Control Plane.

Control Plane

  • Pde ser considerado o cérebro de um cluster. Ele é responsável por gerenciar os principais componentes do sistema e garantir que tudo está funcionando de acordo com o estado desejado da aplicação.

Composição do Kubernets

Bibliografia

  • https://rockcontent.com/br/blog/kubernetes/
  • https://www.redhat.com/pt-br/topics/containers/what-is-kubernetes
  • https://cloud.google.com/learn/what-is-kubernetes?hl=pt-br
  • https://blog.geekhunter.com.br/kubernetes-a-arquitetura-de-um-cluster/
  • https://www.alura.com.br/artigos/o-que-e-kubernetes?
Made with Slides.com