Aula 02 – Kubernates – Arquitetura de Baixo Nível

Aula 02 – Kubernates – Arquitetura de Baixo Nível

Voltar para página principal do blog

Todas as aulas desse curso

Aula 01                                                 Aula 03

Pacote Programador Fullstack

Pacote Programador Fullstack

Redes Sociais:

facebook              

 

Site das bibliotecas

Tensorflow

Keras

Cursos Gratuitos

Digital Innovation

Quer aprender python3 de graça e com certificado? Acesse então:

workover

Empresas de Cloud:

Hostinger

Digital Ocean

One.com

Canais do Youtube

Toti

Lofi Music Zone Beats

Backing Track / Play-Along

Código Fluente

Putz!

Vocal Techniques and Exercises

Fiquem a vontade para me adicionar ao linkedin.

PIX para doações

PIX Nubank

PIX Nubank


Aula 02 – Kubernates – Arquitetura de Baixo Nível

Para rodar o Kubernates é preciso do containerD, não necessariamente do Docker completo instalado.

Para começar, eu vou rodar localmente usando o Minikube.

Para instalação no Windows, é só seguir o passo a passo desse vídeo avulso do Código Fluente, segue o link:

https://www.youtube.com/watch?v=Tr3l-cRIlmI

Para instalar no linux ou mac, o processo é simples, é só seguir as instruções informadas no site do Minikube.

Arquitetura

Container Engine e Container Runtime

A diferença entre container engine e container runtime é sutil, mas importante.

Vamos esclarecer esses conceitos:

Container Engine: Um container engine é uma plataforma completa que inclui um ou mais componentes responsáveis por criar, executar e gerenciar contêineres.

Ele é uma solução completa que pode conter várias ferramentas e serviços relacionados.

O container engine é responsável por fornecer uma interface de usuário e APIs para criar, iniciar e parar contêineres, além de gerenciar o ciclo de vida dos contêineres.

Geralmente, um container engine também inclui um container runtime como um dos seus componentes essenciais.

Exemplos de container engine: Docker e Podman

Container Runtime: O container runtime é um componente específico dentro do container engine responsável por executar os contêineres em um sistema operacional hospedeiro.

Ele é responsável por criar e gerenciar a execução dos contêineres, garantindo que eles compartilhem recursos de forma isolada e segura.

O container runtime lida com a criação de namespaces, cgroups e outros mecanismos de isolamento para garantir que os contêineres sejam isolados uns dos outros e do sistema operacional hospedeiro.

Exemplos de container runtime: containerd, CRI-O e runc

Resumindo, o container engine é uma solução completa que engloba todas as ferramentas e componentes necessários para criar e gerenciar contêineres, enquanto o container runtime é um componente específico dentro do container engine que lida com a execução e gerenciamento efetivo dos contêineres no sistema operacional hospedeiro.

O container runtime é uma parte essencial de um container engine, pois é responsável pela execução dos contêineres em si, garantindo o isolamento e a segurança dos processos em execução.

OCI (Open Container Initiative)

Porque o Kubernates consegue usar toda essa variedade de Conteiners Engines e Runtime?

Por causa do padrão estabelecido pela OCI e que todos seguem, é um padrão que vai além do Kubernates, outros orquestradores de containers também usam.

Tipos de Containers Runtime

Baixo Nível e Alto Nível.

Baixo Nível (RunC, por exemplo, criado pela OCI) e o de Alto Nível (ContainerD, por exemplo).

O RunC por ser de baixo nível consegue falar direto com o kernel

Outra opção de container runtime de baixo nível é o crun.

Como funciona a pilha do Docker

O Docker Engine vem com várias ferramentas para facilitar a criação e execução de contêineres como desenvolvedor ou administrador de sistemas.

É basicamente uma interface de linha de comando (CLI) para trabalhar com contêineres.

Mas o comando docker é apenas uma peça do quebra-cabeça.

Na verdade, ele chama algumas ferramentas de baixo nível para fazer o trabalho pesado:

Docker

Docker

No mundo do ecossistema de contêineres, existem muitas tecnologias empolgantes, jargões e concorrência entre grandes empresas.

No entanto, de tempos em tempos, essas empresas conseguem chegar a um acordo, estabelecendo padrões que tornam o ecossistema mais interoperável.

Essa cooperação é como um contrato que permite que diferentes plataformas e sistemas operacionais executem software de forma mais flexível, sem depender excessivamente de uma única empresa ou projeto.

Dois dos principais padrões relacionados a contêineres são:

Open Container Initiative (OCI): Esse conjunto de padrões define as especificações para o formato de imagem, tempo de execução e distribuição de contêineres.

Ele visa garantir a compatibilidade entre as diferentes ferramentas e plataformas de contêineres.

Container Runtime Interface (CRI) no Kubernetes: Essa API possibilita o uso de diferentes containers runtime no Kubernetes.

Isso permite a flexibilidade de escolher o container runtime mais adequado para diferentes cenários, facilitando a integração e o gerenciamento dos contêineres no ambiente Kubernetes.

Essa ilustração dá uma visão geral de como Docker, Kubernetes, CRI, OCI, containerd e runc se encaixam neste ecossistema:

Docker, CRI-O, ContainerD e RunC

Docker, CRI-O, ContainerD e RunC

O Docker é uma ferramenta que ajuda a criar, executar e gerenciar contêineres.

Existem padrões abertos para garantir que diferentes ferramentas de contêineres funcionem bem juntos.

No Kubernetes, você pode escolher qual ferramenta de contêiner deseja usar.

Duas opções populares são o containerd e o CRI-O.

O containerd é uma ferramenta criada pelo Docker que cuida das tarefas de alto nível, como baixar imagens de contêineres e gerenciar o armazenamento.

O CRI-O é uma alternativa ao containerd, projetada especificamente para funcionar bem com o Kubernetes.

Ele também faz as mesmas tarefas que o containerd, mas pode ser preferido em certos cenários.

Ambos implementam padrões comuns, permitindo que o Kubernetes trabalhe facilmente com qualquer uma dessas ferramentas.

Resumindo, no mundo dos contêineres, temos diferentes ferramentas para escolher.

No Kubernetes, você pode usar o containerd ou o CRI-O para criar e gerenciar seus contêineres de maneira eficiente e flexível.

Na próxima aula veremos a arquitetura de alto nível do Kubernates, ou seja, seus componentes:
Kubelet, Pod, ReplicaSet, Deployment, Services …

Por essa aula é só, nos vemos na próxima, valeu \o/.


Voltar para página principal do blog

Todas as aulas desse curso

Aula 01                                                 Aula 03

Meu github:

https://github.com/toticavalcanti

Novamente deixo meus link de afiliados:

Hostinger

Digital Ocean

One.com

Obrigado, até a próxima e bons estudos. 😉

 

 

Category: DevOps, Kubernates
About The Author
-

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>