Comparação de custos em Kubernetes gerenciados (2020)

Observação. trad.: O engenheiro americano de DevOps Sid Palas, usando anúncio recente do Google Cloud Como guia informativo, comparei o custo do serviço Managed Kubernetes (em diferentes configurações) dos principais provedores de nuvem do mundo. Uma vantagem adicional de seu trabalho foi a publicação do Jupyter Notebook correspondente, que permite (com conhecimento mínimo de Python) ajustar os cálculos realizados às suas necessidades.

TL, DR: o Azure e o Digital Ocean não cobram pelos recursos de computação usados ​​para o plano de controle, o que os torna uma boa opção para implantar muitos clusters pequenos. Para executar um pequeno número de clusters grandes, o GKE é mais adequado. Além disso, você pode reduzir significativamente os custos usando nós spot/preemptivos/de baixa prioridade ou “assinando” o uso de longo prazo dos mesmos nós (isso se aplica a todas as plataformas).

Comparação de custos em Kubernetes gerenciados (2020)
Tamanho do cluster (número de trabalhadores)

Visão global

Anúncio recente do Google Cloud O anúncio do GKE de começar a cobrar 10 centavos por hora de cluster para cada hora de cluster me levou a começar a analisar os preços das principais ofertas gerenciadas do Kubernetes.

Comparação de custos em Kubernetes gerenciados (2020)
Este anúncio perturbou muito alguns...

Os personagens principais do artigo são:

Divisão de custos

O custo total de uso do Kubernetes em cada uma dessas plataformas consiste nos seguintes componentes:

  • Taxa de administração de cluster;
  • Balanceamento de carga (para Ingress);
  • Recursos computacionais (vCPU e memória) dos trabalhadores;
  • Tráfego de saída;
  • Armazenamento permanente;
  • Processamento de dados por balanceador de carga.

Além disso, os provedores de nuvem oferecem descontos significativos se o cliente quiser/puder usar serviços preemptivos. ver ou nós de baixa prioridade OU compromete-se a usar os mesmos nós por 1 a 3 anos.

Vale ressaltar que embora o custo seja uma boa base para comparar e avaliar prestadores de serviços, outros fatores devem ser levados em consideração:

  • Uptime (Acordo de Nível de Serviço);
  • O ecossistema de nuvem circundante;
  • Versões disponíveis de K8s;
  • Qualidade da documentação/kit de ferramentas.

No entanto, esses fatores estão além do escopo deste artigo/estudo. EM Postagem de fevereiro no blog StackRox Fatores não relacionados ao preço para EKS, AKS e GKE são discutidos em detalhes.

Caderno Jupyter

Para tornar mais fácil encontrar a solução mais rentável, desenvolvi Caderno Jupyter, usando plotly + ipywidgets nele. Ele permite comparar ofertas de provedores para diferentes tamanhos de cluster e conjuntos de serviços.

Você pode praticar com uma versão ao vivo do bloco de notas no Binder:

Comparação de custos em Kubernetes gerenciados (2020)
gerenciado-kubernetes-price-exploration.ipynb em mybinder.org

Deixe-me saber se os cálculos ou preços originais estão incorretos (isso pode ser feito por meio de um problema ou solicitação pull no GitHub - aqui está o repositório).

Descobertas

Infelizmente, existem muitas nuances para fornecer recomendações mais específicas do que aquelas incluídas no parágrafo TL;DR logo no início. No entanto, algumas conclusões ainda podem ser tiradas:

  • Ao contrário do GKE e do EKS, o AKS e o Digital Ocean não cobram pelos recursos da camada de controle. AKS e DO são mais lucrativos se a arquitetura incluir muitos clusters pequenos (por exemplo, um cluster por cada desenvolvedor ou cada cliente).
  • Os recursos de computação um pouco mais baratos do GKE o tornam mais lucrativo à medida que o tamanho dos clusters* aumenta.
  • O uso de nós preemptivos ou afinidade de nós de longo prazo pode reduzir custos em mais de 50%. Observação: a Digital Ocean não oferece esses descontos.
  • As taxas de saída do Google são mais altas, mas o custo dos recursos computacionais é um fator determinante no cálculo (a menos que seu cluster esteja gerando uma quantidade significativa de dados de saída).
  • A seleção de tipos de máquinas com base nas necessidades de CPU e memória de suas cargas de trabalho ajudará você a evitar pagar mais por recursos não utilizados.
  • A Digital Ocean cobra menos por vCPU e mais por memória em comparação com outras plataformas – isso pode ser um fator decisivo para alguns tipos de cargas de trabalho de computação.

*Observação: a análise usa dados para nós de computação de uso geral (propósito geral). Estas são instâncias n1 GCP Compute Engine, instâncias m5 AWS ec2, máquinas virtuais D2v3 Azure e droplets DO com CPUs dedicadas. Por sua vez, é possível realizar pesquisas entre outros tipos de máquinas virtuais (expansíveis, básicas). À primeira vista, o custo das máquinas virtuais depende linearmente do número de vCPUs e da quantidade de memória, mas não tenho certeza se essa suposição será verdadeira para proporções de memória/CPU altamente fora do padrão.

o artigo O guia definitivo de custos do Kubernetes: AWS vs GCP vs Azure vs Digital Ocean, publicado em 2018, utilizou um cluster de referência com 100 núcleos vCPU e 400 GB de memória. Para efeito de comparação, de acordo com meus cálculos, um cluster semelhante em cada uma dessas plataformas (para instâncias sob demanda) custará o seguinte valor:

  • AKS: 51465 USD/ano
  • EKS: 43138 USD/ano
  • GKE: 30870 USD/ano
  • FAZER: 36131 USD/ano

Espero que este artigo junto com o notebook ajude você a avaliar as principais ofertas gerenciadas do Kubernetes e/ou economizar dinheiro em infraestrutura em nuvem aproveitando descontos e outras oportunidades.

PS do tradutor

Leia também em nosso blog:

Fonte: habr.com

Adicionar um comentário