Spanish English French German Italian Portuguese
marketing social
InícioTecnologiaInfra-estruturaPrincípios para lidar com dados no Kubernetes

Princípios para lidar com dados no Kubernetes

O Kubernetes se tornou um padrão do setor, com até 94% de organizações que implantam seus serviços e aplicativos na plataforma de orquestração de contêineres, de acordo com pesquisas. Uma das principais razões pelas quais as empresas implementam o Kubernetes é a padronização, que permite que os usuários avançados vejam os benefícios de produtividade em dobro.

A padronização no Kubernetes oferece às organizações a capacidade de implantar qualquer contêiner, em qualquer lugar. Mas faltava uma peça: a tecnologia presumia que os contêineres eram temporários, o que significa que apenas os sem estado poderiam ser implantados com segurança no Kubernetes. No entanto, recentemente a comunidade mudou o paradigma e trouxe recursos como StatefulSets e Storage Classes, que possibilitam o uso de dados no Kubernetes.

Embora seja possível executar contêineres com estado no Kubernetes, ainda é um desafio.

faça isso progressivamente

O Kubernetes está a caminho de se tornar tão popular quanto o Linux e a maneira de fato de executar qualquer aplicativo, em qualquer lugar, de maneira distribuída. Usar o Kubernetes envolve aprender muitos conceitos técnicos e vocabulário. Por exemplo, os recém-chegados podem ter problemas com as muitas unidades lógicas do Kubernetes, como contêineres, pods, nós e clusters.

Se você ainda não estiver executando o Kubernetes em produção, não é uma boa ideia pular direto para os contêineres de dados. É melhor começar movendo aplicativos sem estado para evitar perda de dados quando as coisas derem errado.

Se você não encontrar um operador que atenda às suas necessidades, não se preocupe, porque a maioria deles é de código aberto.

Entenda as limitações e especificidades

Quando estiver familiarizado com os conceitos gerais do Kubernetes, você poderá mergulhar nos detalhes dos conceitos com estado. Por exemplo, como os aplicativos podem ter diferentes necessidades de armazenamento, como requisitos de desempenho ou capacidade, o sistema de armazenamento subjacente correto deve ser fornecido.

O que o setor geralmente chama de "perfis" de armazenamento são chamados de classes de armazenamento no Kubernetes. Eles fornecem uma maneira de descrever os diferentes tipos de classes que um cluster Kubernetes pode acessar. As classes de armazenamento podem ter diferentes níveis de QoS, como operações de I/O por segundo por GiB, políticas de backup ou políticas arbitrárias, como modos de link e topologias permitidas.

Outro componente crítico a ser compreendido é o StatefulSet. É o objeto da API do Kubernetes usado para gerenciar aplicativos com estado e oferece recursos importantes, como:

  • Identificadores de rede exclusivos e estáveis ​​que permitem rastrear o volume e desconectar e reconectar quando quiser
  • Armazenamento estável e persistente para manter seus dados seguros
  • Implantação e dimensionamento limpos e ordenados, que são necessários para muitas operações do dia 2.

Embora o StatefulSet tenha sido um substituto bem-sucedido para o infame (agora obsoleto) PetSet, ele ainda é imperfeito e tem limitações. Por exemplo, o controlador StatefulSet vem sem suporte embutido para redimensionamento de volume (PVC) — o que é um grande desafio se o tamanho do conjunto de dados do seu aplicativo estiver prestes a crescer além da capacidade de armazenamento alocada atual. existir soluções alternativas mas tais limitações devem ser compreendidas com bastante antecedência para que a equipe de engenharia saiba como lidar com elas.

Tem um plano

Uma vez familiarizado com os conceitos de estado do Kubernetes, você pode migrar progressivamente as tarefas relacionadas a dados em uma ordem específica. Isso permite que você aprenda com os erros e evite ficar sobrecarregado, porque nem todas as tecnologias de dados são igualmente fáceis de executar no Kubernetes.

As tecnologias estabelecidas, como bancos de dados e armazenamento, devem ser migradas primeiro, e as tecnologias emergentes, como IA e ML, devem ser migradas por último. Isso se reflete em um relatório recente, que descobriu que banco de dados e armazenamento persistente são as duas cargas de trabalho de dados mais executadas no Kubernetes. O principal motivo é a falta de ferramentas para as operações do Dia 2.

Disponibilidade de operadoras

Mover contêineres com estado para o Kubernetes é apenas metade do trabalho, também conhecido como Dia 1. Agora é hora de lidar com as operações do Dia 2 (um dos tópicos mais discutidos no último KubeCon). É aqui que as coisas ficam complicadas. Existem inúmeras operações do Dia 2 que o Kubernetes não consegue lidar nativamente, como aplicação de patches e atualização, backup e recuperação, processamento de log, monitoramento, dimensionamento e ajuste.

Todas essas operações são específicas do aplicativo. Por exemplo, um cluster PostgreSQL e MySQL exigirá duas abordagens completamente diferentes ao escolher um novo servidor principal em uma configuração de cluster HA. O Kubernetes não pode conhecer todas as operações específicas do dia 2 do aplicativo. É aqui que entram os operadores.

Os operadores são extensões programáveis ​​que executam operações que o Kubernetes não pode manipular nativamente. Os operadores fornecem recursos de gerenciamento dinâmicos e inteligentes, estendendo a funcionalidade da API do Kubernetes. Um dos usos mais comuns é executar essas operações do dia 2. Esses operadores não são desenvolvidos pelos mantenedores do Kubernetes, mas por desenvolvedores e organizações terceirizados.

Antes de mover um trabalho de dados para o Kubernetes, verifique se há um operador para ele. O OperatorHub faz um ótimo trabalho ao indexá-los. Com 282 operadores disponíveis no site, a distribuição ecoa o que foi dito acima: alguns trabalhos têm ferramentas de suporte e outros não. Por exemplo, a categoria de banco de dados possui 38 operadores (existem oito apenas para PostgreSQL), enquanto toda a categoria ML/IA possui apenas sete.

O nível certo de habilidade do operador

Ter um operador para sua tecnologia não é suficiente, pois eles podem ter diferentes capacidades e muitas vezes existem em vários níveis de maturidade. O OperatorFramework sugere um modelo de capacidade que categoriza os operadores com base em suas características:

  • Camada 1 – Funciona para instalação básica, como provisionamento automatizado de aplicativos e gerenciamento de configuração.
  • Camada 2: oferece suporte a atualizações, patches e atualizações de versões secundárias sem problemas.
  • Camada 3 – lida com todo o ciclo de vida do aplicativo e do armazenamento (backup, failover, etc.).
  • Camada 4 – Fornece insights, métricas, alertas, processamento de log e análise de carga de trabalho.
  • Nível 5 – Fornece dimensionamento horizontal/vertical automático, ajuste automático de configuração, detecção de anomalias e ajuste de programação.

Ao escolher um operador, você deve se certificar de que seus recursos atendem às suas necessidades. Se você não tem certeza de qual nível é o certo, o relatório Data on Kubernetes 2022 constatou que a maioria das organizações está procurando por operadores que estejam pelo menos no nível 3. Ter um backup para seus contêineres é uma boa prática.

Se você não consegue encontrar um operador que atenda às suas necessidades, não há problema porque a maioria deles é de código aberto. Você pode estender os recursos dos operadores existentes com desenvolvimento interno ou, melhor ainda, contribuir com o projeto de código aberto.

entenda o operador

A extensibilidade dos operadores é sua força, mas também sua fraqueza. A falta de padrões significa que eles são programados de maneiras diferentes, então você deve olhar seus arquivos de configuração para escolher o formato que funciona melhor para você.

Além disso, os operadores podem usar diferentes rotas técnicas para atingir o mesmo objetivo. Por exemplo, um dos oito operadores do PostgreSQL, CloudNativePG, não usa StatefulSets e, em vez disso, usa seu próprio manipulador personalizado. Isso é bastante inesperado, considerando que StatefulSets é a base para contêineres com estado no Kubernetes.

Seus desenvolvedores decidiram usar esse design devido à incapacidade do StatefulSet de redimensionar PVCs (como discutimos acima). Como explica a documentação do operador, escolher "diferentes opções de layout leva a vários caminhos". Portanto, ao escolher uma operadora, certifique-se de entender sua implementação e suas vantagens e desvantagens, e escolha a que for mais confortável para você.
Vale o esforço

A execução de dados no Kubernetes nem sempre é fácil, mas a boa notícia é que vale a pena o trabalho duro: 54% das organizações pesquisadas atribuem mais de 10% de sua receita à execução de dados no Kubernetes. Além disso, 33% disseram que tem um impacto transformacional na produtividade e outros 51% viram um impacto positivo significativo.

À medida que as organizações adotam cada vez mais a infraestrutura multicloud para otimizar o custo e o desempenho da infraestrutura, o Kubernetes se tornou a ferramenta preferida. Com aproximadamente 66% dos países tendo alguma forma de privacidade de dados e legislação de direitos do consumidor, que muitas vezes exige a aplicação da governança de dados, as empresas devem cada vez mais hospedar dados de usuários nos países em que operam.

RELACIONADO

Deixe uma resposta

Por favor, digite seu comentário!
Por favor insira seu nome aqui

A moderação de comentários está ativada. Seu comentário pode demorar algum tempo para aparecer.

Este site usa o Akismet para reduzir o spam. Saiba como seus dados de comentário são processados.

INSCREVA-SE NO TRPLANE.COM

Publicar no TRPlane.com

Se você tiver alguma história interessante sobre transformação, TI, digital, etc. com um lugar no TRPlane.com, envie para nós e compartilharemos com toda a Comunidade.

MAIS PUBLICAÇÕES

Ativar notificações OK Sem gracias