Aula 01 – Kubernates – Introdução ao Kubernetes

Aula 01 – Kubernates – Introdução ao Kubernetes

Voltar para página principal do blog

Todas as aulas desse curso

Aula 02

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 01 – Kubernates – Introdução ao Kubernetes

O Kubernetes, também conhecido como K8s, é uma plataforma de orquestração de contêineres de código aberto, desenvolvida pelo Google, que facilita a implantação, o dimensionamento e a gestão de aplicativos em contêineres.

A história do Kubernetes remonta à experiência do Google em execução de aplicativos em escala global.

Antes do Kubernetes, o Google utilizava uma solução interna chamada Borg para orquestrar seus contêineres.

Ele foi criado com base em lições aprendidas com o Borg, mas projetado para ser acessível e utilizável pela comunidade de desenvolvedores em geral.

Ou seja, foi projetado para lidar com a complexidade de executar e gerenciar aplicativos distribuídos em larga escala.

O Google decidiu tornar o Kubernetes um projeto de código aberto por vários motivos estratégicos e práticos:

Colaboração e comunidade: Ao disponibilizar o Kubernetes como um projeto de código aberto, o Google abriu caminho para a colaboração com a comunidade de desenvolvedores em todo o mundo. Isso permitiu que especialistas e entusiastas contribuíssem com melhorias, correções de bugs e recursos adicionais, enriquecendo o ecossistema do Kubernetes.

Padronização da indústria: Ao fornecer uma solução de orquestração de contêineres de código aberto, o Google ajudou a estabelecer um padrão comum para a indústria de tecnologia. Isso permitiu que outras empresas e organizações adotassem e construíssem em cima do Kubernetes, evitando fragmentação e promovendo a interoperabilidade entre diferentes soluções de contêiner.

Ampliar a adoção de contêineres: O Google reconheceu o valor dos contêineres como uma forma eficiente e portátil de empacotar e distribuir aplicativos. Ao tornar o Kubernetes acessível e confiável, eles incentivaram a adoção generalizada de contêineres na indústria, impulsionando a inovação e a transformação digital.

Contribuição para a comunidade: Como uma empresa de tecnologia líder, o Google demonstrou seu compromisso em compartilhar seu conhecimento e tecnologia com a comunidade de desenvolvedores. O lançamento do Kubernetes como um projeto de código aberto reflete a cultura de colaboração e o apoio ao desenvolvimento comunitário.

Linguagem que foi desenvolvido

O Kubernetes foi primariamente implementado usando a linguagem Go, também conhecida como Golang, que é uma linguagem de programação de código aberto desenvolvida pelo Google.

A escolha do Go se deu por sua combinação de desempenho, eficiência e facilidade de uso, tornando-a adequada para construir uma plataforma robusta e escalável como o Kubernetes.

Além do Go, o Kubernetes também usa outras linguagens, como YAML e Shell Scripting.

O YAML é uma linguagem de marcação de dados amplamente utilizada no contexto do Kubernetes.

Ela é usada para definir arquivos de manifesto, que descrevem a configuração dos recursos e componentes do Kubernetes, como implantações, serviços e volumes.

Os arquivos YAML fornecem uma sintaxe legível por humanos para expressar as configurações e as relações entre os diferentes elementos no ecossistema do Kubernetes.

Já o Shell Scripting é utilizado para escrever scripts e automações relacionadas ao gerenciamento do Kubernetes.

Com scripts de shell, é possível executar operações e comandos que facilitam a administração do Kubernetes.

Esses scripts são úteis para a implantação de recursos, execução de tarefas em contêineres e outras automações necessárias no gerenciamento do Kubernetes.

Portanto, além da linguagem de programação Go, o Kubernetes se baseia no uso de YAML para a definição de manifestos e no Shell Scripting para a criação de scripts e automações relacionadas ao gerenciamento eficiente da plataforma.

Contêineres

Diferença entre máquina virtual contêiner

Diferença entre máquina virtual contêiner

Os contêineres são unidades de empacotamento leves e isoladas que contêm todas as dependências necessárias para executar um aplicativo, incluindo o código, as bibliotecas e as configurações.

Eles oferecem portabilidade, consistência e eficiência, permitindo que os aplicativos sejam executados em qualquer ambiente, desde desenvolvimento local até produção em larga escala.

No entanto, à medida que o número de contêineres aumenta e a complexidade dos aplicativos distribuídos aumenta, surge a necessidade de uma plataforma que facilite a gestão desses contêineres em um ambiente distribuído.

É aí que o Kubernetes entra em cena.

O Kubernetes fornece uma série de recursos e abstrações para facilitar a implantação, o escalonamento e o gerenciamento de aplicativos em contêineres.

Ele permite que você defina como seu aplicativo deve ser implantado, quais recursos ele deve usar e como os contêineres devem ser escalonados para atender à demanda.

Diferença entre o Kubernetes e o Docker

Agora vamos entender a diferença entre o Kubernetes e o Docker, pois eles são frequentemente mencionados juntos, mas desempenham papéis diferentes.

Docker

O Docker é uma plataforma que permite criar, empacotar e distribuir contêineres.

Ele fornece uma maneira consistente e portátil de encapsular aplicativos e suas dependências em contêineres isolados.

Com o Docker, você pode construir imagens de contêiner que contêm tudo o que seu aplicativo precisa para ser executado, incluindo bibliotecas, código e configurações.

O Docker é amplamente utilizado como uma ferramenta de desenvolvimento, permitindo que os desenvolvedores criem ambientes de desenvolvimento consistentes em diferentes sistemas operacionais.

Kubernetes

O Kubernetes, por sua vez, é uma plataforma para orquestração desses contêineres.

Ele é responsável por lidar com a implantação, o escalonamento, a gestão e a coordenação de vários contêineres em um cluster de máquinas.

Ele permite que você dimensione seus aplicativos com facilidade, gerencie o tráfego de rede entre os contêineres e garanta que os aplicativos estejam sempre em execução, mesmo que ocorram falhas em alguns nós do cluster.

Resumindo

O Docker é uma ferramenta para criar e distribuir contêineres, enquanto o Kubernetes é uma plataforma de orquestração de contêineres que gerencia e coordena a execução desses contêineres em um ambiente distribuído.

Razões pelas quais o Kubernetes é amplamente usado para orquestração de contêineres

Escalabilidade

Com base nas configurações definidas, ele pode escalar automaticamente o número de réplicas de um aplicativo em resposta à demanda, garantindo que o aplicativo esteja sempre disponível, mesmo em períodos de tráfego intenso.

Gestão de Recursos

O Kubernetes permite que você especifique os recursos necessários para cada contêiner, como CPU, memória e armazenamento.

Ele garante que os recursos sejam alocados de forma eficiente e justa entre os contêineres em execução, evitando que um contêiner consuma todos os recursos disponíveis.

Autorecuperação

O Kubernetes monitora continuamente os contêineres e os nós em que estão sendo executados. Se um contêiner ou um nó falhar, o Kubernetes automaticamente reinicia o contêiner em outro nó saudável, garantindo a alta disponibilidade dos aplicativos.

Gerenciamento de Rede

O Kubernetes fornece recursos para o gerenciamento de rede, permitindo que os contêineres se comuniquem entre si, mesmo que estejam em diferentes nós do cluster. Ele também oferece suporte a serviços internos e externos para expor os aplicativos de forma controlada.

Implantação Declarativa

O Kubernetes permite que você defina a configuração desejada para seus aplicativos por meio de arquivos de manifesto YAML. Isso possibilita a implantação consistente e repetível dos aplicativos, além de facilitar a gestão das configurações em diferentes ambientes.

Em resumo, o Kubernetes é usado para orquestrar contêineres, fornecendo uma plataforma poderosa para implantar, escalar e gerenciar aplicativos distribuídos em contêineres.

Ele ajuda a simplificar a complexidade da infraestrutura e oferece recursos avançados para garantir a disponibilidade, escalabilidade e resiliência dos aplicativos em um ambiente distribuído.

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


Voltar para página principal do blog

Todas as aulas desse curso

Aula 02

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>