Esta página mostra como obter estatísticas de gastos importantes para fundamentar as suas decisões de otimização de custos e atribuição de recursos através da atribuição de custos do Google Kubernetes Engine (GKE). Saiba mais sobre a diferença entre a atribuição de custos do GKE e a medição da utilização do cluster, as limitações da atribuição de custos do GKE, como ativar a atribuição de custos do GKE em clusters novos e existentes, e como filtrar e consultar a exportação do BigQuery da faturação do Google Cloud.
Esta página destina-se a operadores, arquitetos da nuvem, programadores e administradores de dados que precisam de gerir os custos à medida que criam e configuram clusters e implementam cargas de trabalho no GKE. Para saber mais sobre as funções comuns, consulte o artigo Funções e tarefas comuns do utilizador do GKE.
Antes de ler esta página, recomendamos que se familiarize com as práticas recomendadas para executar aplicações Kubernetes otimizadas em termos de custos no GKE
Potencial aumento do volume de dados
A ativação da atribuição de custos do GKE pode aumentar os custos de armazenamento e consulta no BigQuery. O aumento exato depende do número de combinações distintas de etiquetas e espaços de nomes que usa em pods e clusters.
A ativação da atribuição de custos do GKE não altera o custo total da sua utilização do GKE. A soma dos itens de linha de custos na exportação é a mesma, e as consultas e os relatórios existentes que criou na exportação da faturação devolvem os mesmos valores.
Medição de utilização do cluster e atribuição de custos do GKE
A atribuição de custos do GKE difere da medição de utilização do cluster nos seguintes aspetos:
- A atribuição de custos do GKE oferece uma alternativa à medição da utilização do cluster para obter informações do cluster.
- A atribuição de custos do GKE calcula os custos do cluster na sua conta do Cloud Billing, em vez de agregar os dados num modelo do Looker Studio.
- A atribuição de custos do GKE permite-lhe ver os dados de custos de um cluster na consola do Cloud Billing Google Cloud e na exportação detalhada do Cloud Billing.
Antes de começar
Antes de começar, certifique-se de que realizou as seguintes tarefas:
- Ative a API Google Kubernetes Engine. Ative a API Google Kubernetes Engine
- Se quiser usar a CLI gcloud para esta tarefa,
instale-a e, em seguida,
inicialize-a. Se instalou anteriormente a CLI gcloud, execute
gcloud components update
para obter a versão mais recente.
- Certifique-se de que concluiu os passos para exportar dados detalhados de custos de utilização para o BigQuery. Se a sua organização já estiver a exportar dados, tem de ter acesso para consultar as tabelas.
- Certifique-se de que tem um cluster padrão existente. Para criar um cluster padrão, consulte o artigo Crie um cluster regional.
Limitações e restrições
- Só pode ver os dados de atribuição de custos do GKE na exportação de dados de custos de utilização detalhados do BigQuery da faturação do Google Cloud.
- Tem de ter a versão 392.0.0 ou posterior da Google Cloud CLI
- Se ativar a atribuição de custos do GKE, a exportação de faturação começa a incluir elementos publicitários adicionais para os seus recursos do GKE a partir dessa data. A exportação da faturação não preenche dados.
- Se desativar a atribuição de custos do GKE, a exportação de faturação deixa de incluir elementos publicitários adicionais, mas não modifica nem remove os elementos publicitários anteriores que foram gerados enquanto a funcionalidade estava ativada.
- Os dados de atribuição de custos do GKE baseiam-se em pedidos de recursos e não em recursos consumidos. Para saber mais sobre as diferenças entre pedidos de recursos, limites de recursos e consumo de recursos, consulte o artigo Práticas recomendadas do Kubernetes: pedidos e limites de recursos.
- A atribuição de custos do GKE suporta os seguintes tipos de SKU de recursos:
- SKUs de vCPU de instâncias de VM do Compute Engine
- SKUs de RAM de instâncias de VM do Compute Engine
- SKUs de RAM de instâncias alargadas personalizadas de VMs do Compute Engine
- SKUs de GPU de instâncias de VM do Compute Engine
- SKUs de capacidade de PD do Compute Engine
- SKUs de instâncias do Cloud TPU
- Se um Pod tiver mais de 50 etiquetas do Kubernetes, nenhuma dessas etiquetas vai estar disponível na secção de faturação na nuvem da consola ou na exportação detalhada da faturação na nuvem. Google Cloud
- Depois de ativar a atribuição de custos do GKE, a apresentação dos dados na Faturação na nuvem pode demorar até três dias.
- A atribuição de custos do GKE inclui dados de discos persistentes com as seguintes exceções:
- Só suporta recursos
PersistentVolume
aprovisionados dinamicamente através dePersistentVolumeClaims
ou volumes efémeros genéricos. - Só suporta recursos
PersistentVolume
aprovisionados pelo controlador CSI do disco persistente do Compute Engine ou com o plug-in de armazenamentokubernetes.io/gce-pd
descontinuado com o modo de acessoReadWriteOnce
ouReadWriteOncePod
. - Os discos persistentes com um tempo de atividade inferior a 30 minutos podem não ser monitorizados. Os discos persistentes com, pelo menos, 30 minutos de tempo de atividade são sempre monitorizados.
- Só suporta recursos
- A versão do Cloud TPU tem de ser o Cloud TPU v4 ou posterior.
Veja os custos do cluster do GKE
Quando ativa a atribuição de custos do GKE, o nome do cluster e o espaço de nomes das suas cargas de trabalho do GKE aparecem no campo labels
da exportação da faturação para o BigQuery:
Chave da etiqueta de recurso (labels.key ) |
Valor da etiqueta do recurso (labels.value ) |
|
Descrição |
As etiquetas do Kubernetes
têm o seguinte formato:
k8s-label/${k8s-label-key} , onde
${k8s-label-key} é a chave da etiqueta do Kubernetes do pod. A etiqueta de faturação k8s-label/${k8s-label-key} tem o mesmo valor que a etiqueta do pod do Kubernetes correspondente. |
Se uma chave de etiqueta do Kubernetes entrar em conflito com uma chave de etiqueta da VM, o valor da etiqueta do Kubernetes substitui o valor da etiqueta da VM.
As etiquetas de recursos de clusters e conjuntos de nós são aplicadas aos recursos com a seguinte prioridade, da mais alta para a mais baixa:
|
Nome do cluster | goog-k8s-cluster-name |
[cluster-name] |
Espaço de nomes | k8s-namespace |
[namespace] |
Tipo de carga de trabalho | k8s-workload-type |
[workload-type] (por exemplo, apps/v1-Deployment ,apps/v1-StatefulSet ,apps/v1-DaemonSet ,apps/v1-ReplicaSet ,batch/v1-Job ,batch/v1-CronJob ,core/v1-Pod ) |
Nome da carga de trabalho | k8s-workload-name |
[workload-name] |
Para mais informações, consulte o artigo Esquema dos dados detalhados de custos de utilização.
Além disso, os seguintes espaços de nomes são usados para acompanhar os custos gerais e os recursos não atribuídos:
kube:system-overhead
: isto representa os recursos de nós que não estão disponíveis para os pods. Estes recursos são reservados pelo sistema para executar a framework Kubernetes (incluindo, entre outros, kubelet, kube-proxy e containerd). Esta é a diferença entre a capacidade do nó e os recursos atribuíveis.kube:unallocated
: os recursos não são pedidos por cargas de trabalho nem pedidos para sobrecarga do sistema.
Se o GKE não conseguir determinar a atribuição de custos de um recurso, a exportação inclui um dos seguintes valores:
goog-k8s-unknown
: o Cloud Billing não conseguiu processar a SKU. Isto pode ocorrer quando está a ser aprovisionada uma nova instância do Compute Engine. Pode esperar alguns valoresgoog-k8s-unknown
durante o arranque e o encerramento do nó, por exemplo, quando o GKE dimensiona automaticamente um cluster.goog-k8s-unsupported-sku
: a atribuição de custos do GKE não suporta esta SKU. Trate isto da mesma forma que<blank>
/NULL
. Não existe garantia de que um SKU seja sempre etiquetado com este valor.<blank>
/NULL
: a atribuição de custos do GKE não acompanha este recurso. Isto pode ocorrer quando a atribuição de custos do GKE não está ativada ou o recurso não pertence a um cluster gerido do GKE.
Os custos dos discos persistentes são monitorizados quando o armazenamento de apoio dos discos persistentes é reivindicado pelos pods.PersistentVolumeClaims
Os custos do disco persistente herdam todos os metadados, como as etiquetas e os espaços de nomes do pod de reivindicação, até que os respetivos PersistentVolumeClaims
sejam eliminados. Para os
PersistentVolumeClaims
eliminados, mas que retêm PersistentVolumes
de acordo com a política de recuperação, os custos dos discos persistentes são monitorizados como
não atribuídos.
As etiquetas aplicadas diretamente a PersistentVolumeClaims
não aparecem na secção
Faturação do Google Cloud da Google Cloud consola nem na
exportação detalhada da Faturação do Google Cloud.
Para a RAM expandida, a mesma proporção do custo total é atribuída a uma carga de trabalho para os SKUs de RAM normal e RAM expandida com base no recurso pedido.
Ative a atribuição de custos do GKE
Pode ativar a atribuição de custos do GKE num cluster novo ou existente através da CLI gcloud ou da Google Cloud consola.
gcloud
Atualize um cluster com a flag --enable-cost-allocation
:
gcloud container clusters update CLUSTER_NAME \
--enable-cost-allocation
Substitua CLUSTER_NAME
pelo nome do cluster.
Também pode usar a flag --enable-cost-allocation
quando criar um novo cluster através do comando gcloud container clusters create
.
Consola
Para ativar a atribuição de custos do GKE num cluster existente, faça o seguinte:
- Aceda à página do Google Kubernetes Engine na Google Cloud consola. Aceda ao Google Kubernetes Engine
- Clique no nome do cluster que quer modificar.
- Na página Clusters, na secção Funcionalidades, clique em edit junto a Atribuição de custos.
- Na caixa de diálogo Editar atribuição de custos, selecione a caixa de verificação Ativar atribuição de custos.
- Clique em Guardar alterações.
Verifique se a atribuição de custos do GKE está ativada
gcloud
Descreva o cluster:
gcloud container clusters describe CLUSTER_NAME
O resultado é semelhante ao seguinte:
...
costManagementConfig:
enabled: true
...
Nesta saída, costManagementConfig
indica que a atribuição de custos do GKE está ativada.
Consola
Para verificar se a atribuição de custos do GKE está ativada num cluster existente, faça o seguinte:
- Aceda à página do Google Kubernetes Engine na Google Cloud consola. Aceda ao Google Kubernetes Engine
- Clique no nome do cluster que quer modificar.
- Na página Clusters, na secção Funcionalidades, junto a Atribuição de custos, é apresentado se a atribuição de custos do GKE está ativada.
Filtre dados de custos do GKE
As consultas de exemplo seguintes mostram como filtrar e agrupar os custos do GKE para tipos de recursos suportados por nome do cluster, espaço de nomes e etiqueta.
Substitua BILLING_DATASET_TABLE
pelo nome do
conjunto de dados que criou no BigQuery.
O nome da tabela é semelhante a
gcp_billing_export_resource_v1_<BILLING_ACCOUNT_ID>
.
Limpar
Para evitar incorrer em cobranças na sua Google Cloud conta pelos recursos usados nesta página, desative a atribuição de custos do GKE para o cluster:
gcloud container clusters update CLUSTER_NAME \
--no-enable-cost-allocation
Também pode eliminar o cluster que criou.
O que se segue?
- Ver mais Consultas de exemplo para a exportação de dados de faturação do Google Cloud.
- Saiba como visualizar os seus custos com o Looker Studio.