Nesta página, mostramos como visualizar os custos do cluster do Google Kubernetes Engine (GKE) na exportação do BigQuery do Cloud Billing usando a alocação de custos do GKE.
É possível usar essas informações para distribuir os custos de um cluster para os usuários.
Possível aumento no volume de dados
Ativar o detalhamento 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 rótulos e namespaces que você usa em pods e clusters.
Ativar o detalhamento de custos do GKE não altera o custo total do uso do GKE. A soma dos itens de linha de custo na exportação é a mesma, e as consultas e relatórios que você criou na exportação de faturamento retornam os mesmos valores.
Alocação de custos do GKE e medição de uso do cluster
A alocação de custos do GKE é diferente da medição de uso de clusters das seguintes maneiras:
- A alocação de custos do GKE fornece uma alternativa à medição de uso do cluster para receber informações do cluster.
- A alocação de custos do GKE calcula os custos do cluster na sua conta do Cloud Billing, em vez de agregar os dados em um modelo do Looker Studio.
- Com a alocação de custos do GKE, é possível ver os dados de custo dos clusters no Console do Google Cloud do Cloud Billing e na exportação detalhada do Cloud Billing.
Antes de começar
Antes de começar, verifique se você realizou as tarefas a seguir:
- Ativar a API Google Kubernetes Engine. Ativar a API Google Kubernetes Engine
- Se você quiser usar a Google Cloud CLI para essa tarefa,
instale e, em seguida,
inicialize a
CLI gcloud. Se você instalou a CLI gcloud anteriormente, instale a versão
mais recente executando
gcloud components update
.
- Verifique se você concluiu as etapas para Exportar dados detalhados de custo de uso para o BigQuery. Se a organização já estiver exportando dados, você precisará ter acesso para consultar as tabelas.
Limitações e restrições
- Só é possível ver os dados de detalhamento de custos do GKE na exportação detalhada de dados de custo de uso do BigQuery do Cloud Billing.
- É necessário ter a CLI do Google Cloud versão 392.0.0 ou posterior
- Se você ativar o detalhamento de custos do GKE, a exportação de faturamento começará a incluir outros itens de linha para seus recursos do GKE a partir dessa data. A exportação de faturamento não preenche os dados.
- Se você desativar o detalhamento de custos do GKE, a exportação de faturamento parará de incluir itens de linha adicionais, mas não modificará nem removerá itens anteriores que foram gerados enquanto o recurso estava ativado.
- Os dados de alocação de custos do GKE são baseados em solicitações de recursos, não em recursos consumidos. Para saber mais sobre as diferenças entre solicitações de recursos, limites de recursos e consumo de recursos, consulte Práticas recomendadas do Kubernetes: solicitações e limites de recursos.
- O detalhamento de custos do GKE é compatível com os seguintes tipos de SKU de recurso:
- SKUs de vCPU da instância de VM do Compute Engine
- SKUs de RAM da instância de VM do Compute Engine
- SKUs de GPU da instância de VM do Compute Engine
- SKUs de capacidade de DP do Compute Engine
- Se um pod tiver mais de 50 identificadores do Kubernetes, nenhum deles estará disponível na seção do Cloud Billing do console do Google Cloud ou na exportação detalhada do Cloud Billing.
- Depois de ativar a alocação de custos do GKE, pode levar até três dias para que os dados apareçam no Cloud Billing.
- A alocação de custos do GKE inclui dados de discos permanentes, com
as seguintes exceções:
- Compatível apenas com recursos
PersistentVolume
provisionados dinamicamente peloPersistentVolumeClaims
ou Volumes temporários genéricos. - Compatível apenas com recursos
PersistentVolume
provisionados pelo Driver CSI de disco permanente do Compute Engineou com o plugin de armazenamentokubernetes.io/gce-pd
descontinuado com modo de acessoReadWriteOnce
ouReadWriteOncePod
. - Discos permanentes com tempo de atividade inferior a 30 minutos podem não ser rastreados. Os discos permanentes com pelo menos 30 minutos de tempo de atividade são sempre rastreados.
- Compatível apenas com recursos
Ver os custos do cluster do GKE
Quando você ativa o detalhamento de custos do GKE, o nome do cluster e o
namespace das cargas de trabalho do GKE aparecem no
campo labels
da exportação de faturamento para o BigQuery:
Chave do rótulo do recurso (labels.key ) |
Valor do rótulo de recurso (labels.value ) |
|
Descrição |
Os
rótulos do Kubernetes
têm o seguinte formato:
k8s-label/${k8s-label-key} , em que
${k8s-label-key} é a chave do rótulo do Kubernetes
do pod. O rótulo de faturamento k8s-label/${k8s-label-key} tem
o mesmo valor que o rótulo do pod do Kubernetes correspondente. |
Se uma chave de rótulo do Kubernetes conflita com uma de chave de rótulo da VM, o
valor do rótulo do Kubernetes substitui esse valor.
Os rótulos de recurso do cluster e do pool de nós são aplicados aos recursos usando
esta prioridade, da maior para a menor:
|
Nome do cluster | goog-k8s-cluster-name |
[cluster-name] |
Namespace | 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, acesse Esquema dos dados detalhados de custo de uso.
Além disso, os namespaces a seguir são usados para rastrear sobrecarga e recursos não alocados:
kube:system-overhead
: considera recursos de nó que não estão disponíveis para os pods. Esses recursos são reservados pelo sistema para executar o framework do Kubernetes (incluindo, mas não se limitando a, kubelet, kube-proxy, containerd). Essa é a diferença entre a capacidade do nó e os recursos alocáveis.kube:unallocated
: os recursos não são solicitados por cargas de trabalho nem solicitados para a sobrecarga do sistema.
Se o GKE não puder determinar a alocação de custos de um recurso, a exportação vai incluir um destes valores:
goog-k8s-unknown
: o Cloud Billing não conseguiu processar a SKU. Isso pode acontecer durante o provisionamento de uma nova instância do Compute Engine. Alguns valores degoog-k8s-unknown
podem ser esperados durante a inicialização e o desligamento do nó, por exemplo, quando o GKE escalona um cluster automaticamente.goog-k8s-unsupported-sku
: a alocação de custos do GKE não funciona com essa SKU. Trate isso da mesma forma que<blank>
/NULL
. Não há garantia de que uma SKU será sempre rotulada com esse valor.<blank>
/NULL
: a alocação de custos do GKE não rastreia esse recurso. Isso pode ocorrer quando a alocação de custos do GKE não está ativada ou o recurso não pertence a um cluster gerenciado do GKE.
Os custos de discos permanentes são rastreados quando o PersistentVolumeClaims
de apoio do disco permanente é reivindicado pelos pods. Os custos do Persistent Disk herdam todos os metadados do pod declarante, como rótulos e namespaces do pod, até que os PersistentVolumeClaims
sejam excluídos. Para PersistentVolumeClaims
que são excluídos, mas mantêm PersistentVolumes
de acordo com a política de recuperação, os custos dos Persistent Disks são rastreados como não alocados.
Os rótulos aplicados diretamente a PersistentVolumeClaims
não aparecem na seção "Cloud Billing" do Console do Google Cloud ou na exportação detalhada do Cloud Billing.
Ativar a alocação de custos do GKE
É possível ativar a alocação de custos do GKE em um cluster novo ou atual usando a CLI gcloud ou o console do Google Cloud.
Criar um novo cluster
gcloud
Crie um cluster usando a sinalização --enable-cost-allocation
:
gcloud container clusters create CLUSTER_NAME \
--enable-cost-allocation \
--region=COMPUTE_REGION
Substitua:
CLUSTER_NAME
: o nome do novo cluster;COMPUTE_REGION
: a região do Compute Engine do cluster. Para clusters zonais, use--zone=COMPUTE_ZONE
.
Console
Para ativar a alocação de custos do GKE ao criar um novo cluster, faça o seguinte:
Acesse a página Google Kubernetes Engine no console do Google Cloud.
Clique em add_box Criar.
Configure seu cluster.
No painel de navegação, em Cluster, clique em Recursos.
Na seção Outros, marque a caixa de seleção Ativar alocação de custos.
Configure o cluster conforme necessário e clique em Criar.
Atualize um cluster
gcloud
Atualize um cluster usando a sinalização --enable-cost-allocation
:
gcloud container clusters update CLUSTER_NAME \
--enable-cost-allocation
Substitua CLUSTER_NAME
pelo nome do cluster.
Console
Para ativar a alocação de custos do GKE em um cluster atual, faça o seguinte:
- Acesse a página Google Kubernetes Engine no console do Google Cloud. Acessar o Google Kubernetes Engine
- Clique no nome do cluster que você quer modificar.
- Na página Clusters, na seção Recursos, clique em edit ao lado de Alocação de custos.
- Na caixa de diálogo Editar alocação de custos, marque a caixa de seleção Ativar alocação de custos.
- Clique em Salvar alterações.
Verificar se a alocação de custos do GKE está ativada
gcloud
Descreva o cluster:
gcloud container clusters describe CLUSTER_NAME
O resultado será assim:
...
costManagementConfig:
enabled: true
...
Nesta saída, costManagementConfig
indica que a alocação de custos do GKE está ativada.
Console
Para verificar se a alocação de custos do GKE está ativada em um cluster atual, faça o seguinte:
- Acesse a página Google Kubernetes Engine no console do Google Cloud. Acessar o Google Kubernetes Engine
- Clique no nome do cluster que você quer modificar.
- Na página Clusters, na seção Recursos, ao lado de Alocação de custos, será mostrado se a alocação de custos do GKE estiver ativada.
Filtrar os dados de custo do GKE
Os exemplos de consultas a seguir mostram como filtrar e agrupar os custos do GKE de acordo com os tipos de recursos compatíveis por nome, namespace e rótulo do cluster.
Substitua BILLING_DATASET_TABLE
pelo nome do conjunto de dados que você criou no BigQuery.
O nome da tabela é semelhante
a gcp_billing_export_resource_v1_<BILLING_ACCOUNT_ID>
.
Limpar
Para evitar cobranças na sua conta do Google Cloud pelos recursos usados nesta página, desative a alocação de custo do GKE no cluster:
gcloud container clusters update CLUSTER_NAME \
--no-enable-cost-allocation
Também é possível excluir o cluster que você criou.
A seguir
- Veja mais em Exemplos de consultas para exportação de dados do Cloud Billing.
- Saiba como ver seus custos com o Looker Studio.