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?


Kubernetes
By pakato
Kubernetes
Seminário sobre Kubernetes para a especialização em Engenharia de software DevOps
- 63