Use a Cost API para consultar estimativas de custo em tempo real e dados de uso de recursos de pods ou namespaces em um cluster ACK.
Pré-requisitos
Antes de começar, verifique se você:
Cumpriu todos os pré-requisitos descritos em Visão geral da chamada de uma API para consultar dados de custo, incluindo a implantação do componente
ack-metrics-adaptere a conexão com o clusterTem o
kubectlinstalado e configurado com acesso ao cluster
Dimensões de consulta compatíveis
A Cost API oferece suporte às seguintes dimensões de consulta:
Pod: consulte por pod individual, vários pods ou pods filtrados por rótulo
Namespace: consulte por namespace individual ou todos os namespaces
Use DimensionType e Dimension juntos para definir um escopo específico. Adicione LabelSelector para filtrar por rótulo em qualquer dimensão. Os parâmetros LabelSelector e DimensionType combinam-se com lógica AND.
Parâmetros
Todos os exemplos usam kubectl get --raw no seguinte endpoint:
/api/v1/namespaces/kube-system/services/ack-metrics-adapter-api-service:8080/proxy/cost
Anexe parâmetros de consulta a este endpoint para filtrar resultados.
|
Parâmetro |
Descrição |
Padrão |
Valores válidos |
|
|
Dimensão para consulta dos dados de custo |
|
|
|
|
Filtra resultados para um namespace ou pod específico. Omita para retornar todos. Para consultar vários pods, use valores separados por vírgula: |
Todos |
Nome de um namespace ou nome de um pod |
|
|
Filtra pods pelo rótulo |
— |
|
|
|
Intervalo de tempo dos dados de custo a retornar |
|
|
|
|
Se definido como |
|
|
Métricas de dados de custo
Cada entrada da resposta inclui as seguintes métricas de custo:
|
Campo |
Unidade |
Descrição |
|
|
vCores |
Uso de CPU |
|
|
Contagem |
Quantidade de GPUs |
|
|
KB |
Uso de memória |
|
|
$ (Site internacional) |
Preço unitário de vCores no nó que hospeda o pod ou aplicação |
|
|
— |
Proporção do custo deste pod ou aplicação em relação ao custo total do cluster. Por exemplo, |
|
|
$ (Site internacional) |
Custo total do pod ou aplicação no intervalo de tempo consultado |
|
|
— |
Custo personalizado do pod ou aplicação no intervalo de tempo consultado |
Cada entrada também inclui os subcampos request, usage e limit para cpu, memory, gpu e gpuMem:
|
Subcampo |
Descrição |
|
|
Quantidade de recursos solicitada pelo pod |
|
|
Consumo real de recursos do pod |
|
|
Limite de recursos configurado para o pod |
Exemplos
Exemplo 1: Consultar todos os pods no cluster na última hora
kubectl get --raw "/api/v1/namespaces/kube-system/services/ack-metrics-adapter-api-service:8080/proxy/cost"
Exemplo 2: Consultar todos os pods em um namespace na última hora
Substitua default pelo nome do namespace desejado.
kubectl get --raw "/api/v1/namespaces/kube-system/services/ack-metrics-adapter-api-service:8080/proxy/cost?DimensionType=Namespace&Dimension=default" | jq .
Exemplo 3: Consultar um pod específico na última hora
Substitua o nome do pod pelo valor real.
kubectl get --raw "/api/v1/namespaces/kube-system/services/ack-metrics-adapter-api-service:8080/proxy/cost?DimensionType=Pod&Dimension=pod=nginx-deployment-basic-75d6678cbb-lg8v5" | jq .
Exemplo 4: Consultar pods por rótulo
O comando a seguir consulta todos os pods com o rótulo app=nginx na última hora. Substitua o valor do rótulo pelo valor real.
LabelSelectoreDimensionTypecombinam-se com lógica AND. A omissão deDimensionTypeconsulta todos os pods correspondentes ao rótulo.
kubectl get --raw "/api/v1/namespaces/kube-system/services/ack-metrics-adapter-api-service:8080/proxy/cost?LabelSelector=app=nginx" | jq .
Exemplo 5: Consultar o custo de um pod no último dia
Substitua o nome do pod pelo valor real.
kubectl get --raw "/api/v1/namespaces/kube-system/services/ack-metrics-adapter-api-service:8080/proxy/cost?DimensionType=Pod&Dimension=pod=nginx-deployment-basic-75d6678cbb-lg8v5&TimeUnit=day" | jq .
Exemplo 6: Consultar custo agregado para um namespace
Defina Summary=true para obter uma única entrada agregada para todos os pods no namespace, em vez de resultados individuais por pod. Substitua default pelo nome do namespace desejado.
kubectl get --raw "/api/v1/namespaces/kube-system/services/ack-metrics-adapter-api-service:8080/proxy/cost?DimensionType=Namespace&Dimension=default&Summary=true" | jq .
Próximos passos
Para consultas de intervalo de tempo mais flexíveis e dimensões adicionais (controlador, tipo de controlador), consulte Chamar a Cost V2 API para consultar dados de custo.
Para alocar custos de negócios com base em dados de faturamento para fins contábeis, consulte Chamar a Allocation API para consultar dados de insights de custo.