Whitepaper 'FinOps e gerenciamento de custos para Kubernetes'
Por favor, considere dar ao OptScale um Estrela no GitHub, é código aberto 100%. Aumentaria sua visibilidade para outros e aceleraria o desenvolvimento de produtos. Obrigado!
Ebook 'De FinOps a estratégias comprovadas de gerenciamento e otimização de custos de nuvem'
OptScale FinOps
OptScale — FinOps
Visão geral do FinOps
Otimização de custos:
AWS
Microsoft Azure
Google Cloud
Nuvem Alibaba
Kubernetes
MLOps
OptScale — MLOps
Perfil de ML/IA
Otimização de ML/IA
Criação de perfil de Big Data
PREÇOS OPTSCALE
cloud migration
Acura – migração para nuvem
Visão geral
Nova plataforma de banco de dados
Migração para:
AWS
Microsoft Azure
Google Cloud
Nuvem Alibaba
VMware
Pilha aberta
KVM
Nuvem pública
Migração de:
Na premissa
disaster recovery
Acura – DR e backup na nuvem
Visão geral
Migração para:
AWS
Microsoft Azure
Google Cloud
Nuvem Alibaba
VMware
Pilha aberta
KVM

Problemas de desempenho do Kubernetes e como lidar com eles

O Kubernetes, o software de orquestração de contêineres de código aberto, está dominando o mundo dos aplicativos em contêineres, detendo de longe a maior parte de sua participação no mercado. E há muitas razões para isso. O Kubernetes estende drasticamente os recursos do software para ambientes habilitados para contêineres, como o Docker. Ele simplifica o gerenciamento de implantação, roteamento de rede, utilização de recursos, balanceamento de carga, resiliência de aplicativos em execução e muito mais.

No entanto, essa solução não funcionará efetivamente por si só sem preparação adequada e configuração adicional, pois cada cluster recém-criado não tem um desempenho ideal por padrão. Sempre há dificuldades e nuances sutis na implementação e operação do Kubernetes, bem como o problema do uso subótimo de suas vantagens, o que acaba levando à perda de dinheiro. Nesse caso, os representantes das equipes de TI devem possuir experiência, métodos e instrumentos suficientes para definir configurações incorretas e gargalos, mas, ao mesmo tempo, há uma escassez global de expertise em Kubernetes no mercado, porque neste momento a popularidade do K8s está ultrapassando o nível de conhecimento sobre ele entre especialistas técnicos.

Kubernetes-performance-issues-and-how-to-handle-them

Principais problemas de desempenho do Kubernetes

Com base no pesquisar conduzido pela Circonus, os quatro principais problemas de desempenho do Kubernetes são:

  • contenção de recursos para clusters/nós/pods, 
  • problemas de implantação, 
  • desafios de dimensionamento automático,
  • loops de travamento e falhas de trabalho. 

Não foi nenhuma surpresa, pois esses problemas decorrem, em grande parte, das peculiaridades da tecnologia e da falta de conhecimento e experiência ao trabalhar com essa plataforma.

No coração do Kubernetes, há um planejador que coloca contêineres em nós. Simplificando, é como embalar caixas de tamanhos diferentes com itens de tamanhos e formatos diferentes. Desse ponto de vista, o planejador precisa saber a capacidade exata dos nós, bem como o tamanho de cada contêiner que está sendo colocado nesses nós. A falha em fazer isso resulta em superprovisionamento dos nós e sérios problemas de desempenho.

Como resolver problemas de desempenho do Kubernetes

Monitoramento de métricas do Kubernetes

A maneira mais eficiente — e, ao mesmo tempo, mais desafiadora — de lidar com problemas de desempenho do K8s é definitivamente aumentar a observabilidade da plataforma para ajudar você a entender quais das métricas coletadas você precisa ficar de olho para identificar a causa raiz de certos problemas. Na verdade, o Kubernetes fornece várias métricas, e a maioria delas é uma fonte importante de insights sobre como usar a plataforma, independentemente de como você realmente a executa.

Sistemas de monitoramento de código aberto como Prometeu pode ser uma grande ajuda em visualizando seus custos do Kubernetes. E com a ajuda de um programa autônomo exportador é possível traduzir métricas de nó para o formato apropriado e enviá-las para o servidor Prometheus. Ao instalá-lo em cada nó do seu cluster, você poderá ter acesso a dezenas de categorias de métricas, as mais importantes das quais estão relacionadas ao uso de CPU, disco, memória e rede.

Apesar de termos reduzido o alcance das métricas estudadas para quatro categorias, neste estágio ainda será difícil para nós entender quais indicadores são primordiais para nós. Como o Kubernetes é um exemplo de um sistema complexo, devemos seguir o caminho de simplificar abstrações em torno das categorias de interesse para nós. Posteriormente, isso nos ajudará a analisar não apenas as métricas de nó, mas em geral todas as métricas do Kubernetes.

Os métodos mais comuns para simplificar abstrações são:

  1. O Método USE, introduzido em 2012 por Brendan Gregg; direcionado aos recursos do seu sistema:

    Utilização – o tempo médio em que o recurso esteve ocupado realizando serviços de manutenção.

    Saturação – o grau em que o recurso tem trabalho extra que não pode atender, geralmente enfileirado.

    Erros – a contagem de eventos de erro.

  2.  O Método RED (2015), que define as três principais métricas que você deve medir para cada microsserviço em sua arquitetura:

    (Taxa de solicitação) – o número de solicitações atendidas.

    (Solicitação) Erros – o número de solicitações com falha.

    (Solicitação) Duração – distribuições da quantidade de tempo que cada solicitação leva.

  3. Os Quatro Sinais de Ouro (descritos no livro Engenharia de Confiabilidade do Site do Google) são, até certo ponto, uma fusão dos métodos acima:

Latência – o tempo que leva para atender uma solicitação.

Tráfego – uma medida de quanta demanda é colocada em seu sistema, medida em uma métrica específica do sistema de alto nível.

Erros – a taxa de solicitações que falham, explicitamente, implicitamente ou pela política.

Saturação – quão “cheio” está o seu serviço.

Acontece que não basta ter informações extensas sobre os recursos nos nós do cluster Kubernetes, também é importante poder analisá-los. Por exemplo, analisar recursos (como CPU, disco, memória e rede) pela lente de uso, saturação e erros (método USE) pode nos dar uma compreensão de como os recursos estão sendo gastos e nos permitir otimizar e dimensionar ainda mais seu uso.

Depois que sua equipe de TI descobrir quais recursos estão subutilizados e superutilizados, eles poderão definir os limites de armazenamento ideais, o tamanho ideal de CPU e memória para nós de cluster e os pools de nós ideais para cada nó, o que, por sua vez, permitirá que eles analisar os custos do Kubernetes e analisar seu desempenho.

Seguindo as melhores práticas

Independentemente do nível de sucesso com que você monitora e analisa o uso de recursos do Kubernetes, há uma série de práticas recomendadas a serem seguidas para ajudar você a aproveitar ao máximo a plataforma.

  1. Otimize seu ambiente para o Kubernetes.
    Tenha em mente que ferramentas conteinerizadas foram originalmente projetadas para uma arquitetura fracamente acoplada consistindo em aplicativos Stateless que processam dados, mas não armazenam nada. Portanto, é um erro não fazer nada antes de implantar aplicativos Stateful de armazenamento de dados e não adaptar a arquitetura de aplicativos monolíticos permitindo que eles rodem no Kubernetes.
  2. Use o Kubernetes somente quando for necessário.
    Ao migrar para o Kubernetes, lembre-se de que faz sentido executar bancos de dados e alguns aplicativos em uma máquina virtual, e uma possível mudança por si só pode afetar seriamente o desempenho.
  3. Tenha especialistas que saibam trabalhar com Kubernetes.
    Trabalhar com o Kubernetes requer administradores de sistema com experiência prática com a plataforma, pois manter com sucesso esse ecossistema de componentes exige um alto nível de especialização.
  4. Adapte os processos de TI para implementação do Kubernetes.
    O Kubernetes está mudando fundamentalmente a distribuição de papéis e responsabilidades dentro de uma equipe de TI. Agora, a implementação adequada requer uma mudança para processos DevOps, e os desenvolvedores devem aceitar essa metodologia e suas ferramentas.

    Por meio do DevOps, os administradores de sistema mantêm a infraestrutura, enquanto os desenvolvedores dão suporte ao aplicativo desde o planejamento e codificação até o lançamento, implementação, monitoramento e produção. Os desenvolvedores agora não podem deixar de conhecer a infraestrutura; eles também devem entender como seu código funciona no contexto de todos esses novos processos.

  5. Aproveite ferramentas adicionais que estendem a funcionalidade do Kubernetes sem depender apenas de funcionalidades prontas para uso.

     

    No parágrafo anterior, nos aprofundamos no sistema de monitoramento de métricas baseado no Prometheus, mas isso está longe de toda a funcionalidade que serviços adicionais podem fornecer. Além disso, graças a várias ferramentas, você pode otimizar os processos de armazenamento de dados de aplicativos (Ceph, GlusterFS), coleta e armazenamento de logs (Fluentd, Elasticsearch, Loki), dimensionamento automático (Metrics Server, Prometheus Adapter), configurações de segurança (Dex, Keycloak, Open Policy Agent) e muito mais.

Nosso produto, OptScale, pode ajudar a definir corretamente um conjunto de recursos e configurações, como redimensionamento de VM, tipos de máquina, seleção de região, reformulação de recursos de trabalho de CI/CD ou grupos de afinidade de pod para obter melhor desempenho.

Para experimentar, você pode fazer um teste gratuito; não precisa de cartão de crédito → https://my.optscale.com/register

Digite seu e-mail para ser notificado sobre conteúdo novo e relevante.

Obrigado por se juntar a nós!

Esperamos que você ache útil

Você pode cancelar a assinatura dessas comunicações a qualquer momento. política de Privacidade

Novidades e Relatórios

FinOps e MLOps

Uma descrição completa do OptScale como uma plataforma de código aberto FinOps e MLOps para otimizar o desempenho da carga de trabalho na nuvem e o custo da infraestrutura. Otimização de custo de nuvem, Dimensionamento correto de VM, instrumentação PaaS, Localizador de duplicatas S3, Uso RI/SP, detecção de anomalias, + ferramentas de desenvolvedor de IA para utilização ideal da nuvem.

FinOps, otimização de custos de nuvem e segurança

Conheça nossas melhores práticas: 

  • Como liberar IPs elásticos no Amazon EC2
  • Detectar VMs do MS Azure interrompidas incorretamente
  • Reduza sua fatura da AWS eliminando instantâneos de disco órfãos e não utilizados
  • E insights muito mais profundos

Otimize o uso de RI/SP para equipes de ML/AI com OptScale

Descubra como:

  • veja cobertura RI/SP
  • obtenha recomendações para uso ideal de RI/SP
  • aprimore a utilização de RI/SP por equipes de ML/IA com OptScale