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
Redes Sociais:
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
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:
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:
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. 😉