CloudDomíniosHospedagem

6 melhores práticas para manter os custos da Kubernetes sob controle

Gerenciar com sucesso os custos de infraestrutura e gerenciamento da Kubernetes requer monitoramento granular, visibilidade compartilhada e controles eficazes. Veja como chegar lá.

ship wheel captain leadership
Imagem: TomasHa73/PixaBay

Kubernetes tornou-se a escolha padrão para orquestração de recipientes. Permite que as organizações implementem, gerenciem e dimensionem suas aplicações contêineres, fornecendo muitos benefícios, incluindo escalabilidade, disponibilidade, confiabilidade e agilidade.

No entanto, enquanto Kubernetes se tornou um componente chave da pilha de tecnologia para a construção e implantação de aplicações modernas, manter os custos relacionados com Kubernetes sob controle tornou-se um desafio significativo. O custo de execução de Kubernetes inclui dois componentes principais:

  1. Despesas reais de execução de clusters Kubernetes que incluem computação, armazenamento, rede e outros custos de infraestrutura
  2. Custos operacionais de gestão de clusters

Neste post de blog, vamos explorar os vários fatores que podem afetar o custo de usar Kubernetes e fornecer dicas e melhores práticas para o gerenciamento de custos da Kubernetes para manter suas contas de nuvem sob controle.

[ Mantenha-se com os últimos desenvolvimentos no desenvolvimento de software. Inscreva-se no boletim InfoWorld First Look ]

Kubernetes desafios de gestão de custos

A infraestrutura Kubernetes traz desafios únicos para a gestão de custos. A maioria desses desafios está relacionada com a complexidade de Kubernetes e seu uso. Por exemplo, aplicações contêineres implantadas em Kubernetes usam vários recursos, como vagens, implantações, ingressos, volumes persistentes e namespaces. Calcular o custo para aplicações envolve olhar para as métricas de uso de todos esses recursos em um nível granular.

Além disso, os aplicativos da Kubernetes são frequentemente espalhados por vários clusters, unidades de negócios, centros de dados e ambientes de nuvem e equipes de aplicativos, ou os próprios clusters podem ser compartilhados entre várias unidades de negócios ou equipes de aplicativos. Este nível de complexidade adicional torna difícil rastrear (e atribuir) custos.

Embora muitas organizações já tenham uma solução de gerenciamento de custos, é essencial ter uma solução que suporta nativamente a gestão de custos da Kubernetes, já que a infraestrutura Kubernetes adiciona desafios adicionais ao controle de custos.

Para operar a infraestrutura de Kubernetes de forma mais econômica, as organizações precisam empregar várias técnicas e práticas. Alguns destes incluem:

  • Exemplos de nuvem de dimensionamento correto e recursos de aplicativos
  • Usando Kubernetes multi-tenancy sempre que possível
  • Execução granular Kubernetes visibilidade e monitoramento de custos
  • Políticas de otimização de custos
  • Redução da sobrecarga operacional na gestão da infraestrutura Kubernetes
  • Adotando uma solução de gerenciamento de custos Kubernetes

As seções a seguir vão aprofundar estas seis melhores práticas.

O tamanho apropriado de suas instâncias na nuvem.

Uma das primeiras e principais etapas ao configurar sua infraestrutura Kubernetes é entender os requisitos de recursos de cada aplicativo. Para evitar sobreprovisionamento caro, bem como os impactos adversos de subprovisionamento, é essencial para perfilar as necessidades de recursos de cada aplicação. Então você pode escolher os recursos que melhor se encaixam em seus requisitos de aplicação.

As instâncias de nuvem pública são otimizadas para diferentes cargas de trabalho (por exemplo, computação, memória ou GPU). Assim, escolher o tipo de instância certa para sua aplicação com base em características de aplicação é fundamental.

RELACIONADO:  Wasm: 5 coisas que os desenvolvedores devem estar rastreando

Você pode explorar instâncias exatas para processamento de lotes, integração contínua, ambientes de teste e outras cargas de trabalho ad hoc. Aproveitar instâncias locais pode fornecer economia de custos significativa, mas você deve analisar cuidadosamente as cargas de trabalho ideais para executar em instâncias exatas.

É igualmente importante para aplicações de perfil para entender os requisitos mínimos e máximos de CPU e memória de todos os serviços que funcionam na infraestrutura Kubernetes. Com base nos dados de perfil, você pode configurar as solicitações corretas (mínimo) e limites (peak).

Da mesma forma, você deve adotar Kubernetes Horizontal Pod AutoScaling (HPA) e Vertical Pod AutoScaling (VPA) para dimensionar seus recursos de aplicação, começando com recursos mínimos e aumentando-os à medida que o uso cresce. Você também pode explorar o autoscaler avançado cluster, Karpenter, para escalar seus clusters Kubernets. Karpenter pode dimensionar o cluster quando a carga aumenta e escala no cluster à medida que a carga diminui, reduzindo os custos.

Tire vantagem de Kubernetes multi-tenancy

Clusters são um recurso fundamental na infraestrutura Kubernetes. Você pode implantar clusters de duas maneiras, dedicado e compartilhado. Os clusters dedicados são normalmente implantados para uma única aplicação, ambiente ou equipe. Os clusters compartilhados são distribuídos em aplicações, equipes, unidades de negócios, etc. Decidir quando implantar clusters em um modelo dedicado ou compartilhado é fundamental para gerenciar custos, pois clusters dedicados incorrem em custos significativamente maiores do que clusters compartilhados.

Aqui estão alguns cenários em que clusters dedicados são implantados:

  • A aplicação tem requisitos de baixa latência (ou seja, SLA/SLO alvo é significativamente maior do que outros), portanto, qualquer potencial problema vizinho ruidoso deve ser evitado
  • As aplicações possuem exigências específicas, como por exemplo a necessidade de um plugin CNI ou nós de GPU para trabalhadores.
  • Com base no tipo de ambiente (isto é, clusters dedicados no ambiente de produção e clusters compartilhados em ambientes de palco e teste)

Exceto para esses casos de uso específicos onde clusters dedicados são necessários, é uma boa ideia padronizar em um modelo de cluster compartilhado. Kubernetes nativamente suporta multi-tenancy por meio de namespaces. No entanto, você deve fazer um endurecimento adicional de uma perspectiva de segurança e governança para preparar clusters para implantação multi-tenente.

As etapas adicionais de endurecimento do cluster incluem:

  • Implementar e gerenciar serviços em todo o cluster que são usados por todas as aplicações que executam o cluster
  • Aplicação e gerenciamento de cotas de nível de namespace
  • Políticas de rede para isolamento do namespace
  • Políticas de segurança e governança aproveitando ferramentas como o Agente de Política Aberta
  • SSO e RBAC para acesso controlado seguro aos clusters compartilhados

Fornecer visibilidade de custo para as partes interessadas

“Você não pode efetivamente gerenciar o que você não pode medir” é verdade para o gerenciamento de custos da Kubernetes. Monitorar regularmente o uso de recursos de seus serviços e aplicativos pode ajudar a identificar os componentes que estão consumindo mais recursos e ajudá-lo a otimizá-los para reduzir custos. Você pode usar painéis Kubernetes e ferramentas de monitoramento para rastrear o uso de recursos e identificar áreas para melhoria.

RELACIONADO:  O que não é mencionado pelo ChatGPT sobre a implementação do Kubernetes em ambientes de produção.

Você pode obter insights das métricas de uso para otimizar os limites de recursos e as quotas de uso de suas aplicações. Esta otimização irá garantir que suas aplicações consomem recursos com base em suas necessidades e alocações, impedindo a superação de recursos.

Da mesma forma, você pode configurar limiares de orçamento para fornecer avisos precoces quando os custos excederem certos limites. Esses limiares podem atuar como guardrails para fornecer a disciplina financeira necessária às equipes de infraestrutura Kubernetes. Também é fundamental fornecer visibilidade de custos para unidades de negócios individuais, equipes de desenvolvimento, proprietários de aplicativos e outras equipes. A transparência de custos ajuda a criar disciplina financeira e responsabilidade entre as equipes de stakeholders, e fornece-lhes os insights e a motivação para encontrar formas adicionais de reduzir custos.

Implementar políticas de otimização de custos

Implementar políticas de otimização de custos para excluir recursos não utilizados e subutilizados pode reduzir significativamente os custos de infraestrutura da Kubernetes. Por exemplo, distribuições de Kubernetes geridas pela nuvem pública, como o suporte da Amazon EKS, desligando todos os grupos de nó do trabalhador ao executar o plano de controle. Para clusters de longa duração usados para UAT (teste de aceitação do usuário) ou pré-visualização, você pode construir automação para derrubar grupos de nó do trabalhador durante fins de semana e outras horas de folga, e trazê-los rapidamente de volta quando necessário, mantendo toda a configuração e dados intactos.

Da mesma forma, ambientes de sandbox e desenvolvedor podem ser derrubados automaticamente durante horas de folga para limpar recursos não utilizados. Tags e rótulos podem ser empregados para afixar proprietários, ambientes e prazos de validade para os recursos que podem ser utilizados nas políticas de limpeza. As etiquetas também podem ser usadas para excluir certos recursos, se necessário.

Também é uma boa prática limitar as regiões permitidas a alguns poucos como o custo poderia variar por região. Da mesma forma, você deve habilitar apenas os tipos de instância necessários para seus aplicativos e restringir todos os outros tipos. Você pode criar modelos padronizados que usam recursos ideais e compartilhá-los com seus usuários para criar ambientes de reserva automática.

Além disso, você pode configurar políticas automatizadas para limpar quaisquer recursos não utilizados e inutilizados.

Não ignorar os custos de gerenciamento e manutenção indiretas

Os custos de gestão e manutenção associados à infraestrutura de Kubernetes são muitas vezes ignorados. Esta despesa indireta pode se tornar um grande pedaço do seu total Kubernetes gastos, especialmente se você gerenciar e operar uma infraestrutura razoavelmente grande Kubernetes. As tarefas de gestão e manutenção da Kubernetes incluem:

  • Criando novos clusters Kubernetes para ambientes de produção e não produção
  • Implantação de complementos adicionais necessários ao nível do cluster
  • Configurar políticas de segurança necessárias para os clusters
  • Configurando registro e monitoramento
  • Configurando o Kubernetes RBAC para usuários finais
  • Implementação de aplicações
  • Realizando atualizações de versão Kubernetes
  • Realizar atualizações de versão adicionais
  • Estabelecer cópias de segurança e procedimentos de restauração para garantir a recuperação em situações de emergência.
  • Resolução de problemas e resolução de problemas de infraestrutura
RELACIONADO:  Aviso Megatendência: O crescimento da computação em todos os lugares.

Além das tarefas acima, Kubernetes SRE, operações e equipes de plataforma executam muitas outras atividades para gerenciar e manter a infraestrutura. Realizar essas tarefas manualmente pode resultar em enormes custos operacionais para a organização. Automatizar essas tarefas não só irá reduzir substancialmente os custos, mas também melhorar a experiência do desenvolvedor e acelerar os tempos de entrega do produto.

Uma série de plataformas de operações da Kubernetes fornecem automação turnkey para gerenciar a infraestrutura Kubernetes. Vale a pena explorar essas plataformas para gerenciar e manter sua infraestrutura Kubernetes, pois a construção da automação interna também pode ser muito cara.

Utilize ferramentas desenvolvidas especificamente para gerenciar os custos do Kubernetes.

Dada a complexidade e nuances, alavancar uma ferramenta de código aberto ou comercial de terceiros construída especificamente para a gestão de custos Kubernetes é essencial. Essa ferramenta deve fornecer os seguintes recursos:

  • Visão consolidada de todos os custos da Kubernetes em clusters, equipes, unidades de negócios, aplicativos e ambientes
  • Detalhamento preciso em métricas de custo por namespace, pod, rótulo, entre outros.
  • Chargebacks e alocações de custos para a equipe da FinOps distribuir custos em equipes
  • Retenção a longo prazo de métricas para prever custos futuros
  • RBAC integrado para fornecer informações de custo respectivas para equipes individuais

Você pode usar uma ferramenta de gerenciamento de custos Kubernetes nativa para configurar limites de orçamento apropriados, grupos de cobrança e outras políticas de controle de custos.

O controle de despesas é essencial para o êxito de implementações bem-sucedidas do Kubernetes. É fundamental que as empresas dediquem esforço e atenção para criar uma estratégia eficaz de controle de despesas. Dada a complexidade do Kubernetes, é necessário utilizar uma solução especializada em controle de despesas para lidar com as necessidades específicas dessa tecnologia.

De selecionar instâncias de tamanho certo para monitorar o uso de recursos e custos Kubernetes a um nível granular, seguindo as melhores práticas descritas neste artigo irá ajudá-lo a garantir que os custos permaneçam sob controle. Uma ferramenta dedicada de gestão de custos da Kubernetes pode ajudá-lo a fornecer a visibilidade em custos e estabelecer a governança financeira necessária, permitindo que as equipes da FinOps implementem controles de custos adequados em toda a organização.

Hemanth Kavuluru é co-fundador e SVP de engenharia na Rafay Systems, um provedor de plataforma líder para operações Kubernetes.

Lo siento, pero necesito que proporciones un texto o una frase específica para que pueda parafrasearlo. ¡Estoy aquí para ayudarte!

O New Tech Forum oferece um local para explorar e discutir tecnologia empresarial emergente em profundidade e amplitude sem precedentes. A seleção é subjetiva, baseada na nossa escolha das tecnologias que acreditamos ser importantes e de maior interesse para os leitores do InfoWorld. A InfoWorld não aceita garantia de marketing para publicação e reserva o direito de editar todos os conteúdos contribuídos. Envie todas as perguntas para newtechforum@infoworld.com.

Artigos relacionados

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button