Como entender o uso de recursos do cluster

Nesta página, explicamos como usar a medição de uso do Google Kubernetes Engine para entender os perfis de uso dos clusters do GKE e vincular o uso a equipes individuais ou unidades de negócios, dentro de sua organização. A medição de uso não afeta o faturamento do seu projeto. Ela permite que você entenda o uso de recursos em um nível granular.

Visão geral

Por padrão, é possível encontrar informações sobre o uso de recursos do cluster do GKE no nível do projeto do Google Cloud Platform. A medição de uso rastreia o uso de recursos de cluster individuais, como CPU, GPU, memória, saída de rede e armazenamento. É possível diferenciar o uso de recursos do Kubernetes com namespaces, rótulos ou uma combinação de ambos. Os dados são armazenados no BigQuery e é possível exportá-los para análise usando ferramentas externas, como o Google Data Studio.

A medição de uso é útil para cenários como os seguintes:

  • Rastrear o uso por locatário em um cluster de vários locatários, em que cada um deles opera em um determinado namespace do cluster.
  • Determinar o uso de um aplicativo em execução em um cluster específico atribuindo um rótulo exclusivo aos objetos do Kubernetes pertencentes ao aplicativo.

Limitações

Use as consultas de amostra do BigQuery e o modelo do Google Data Studio para associar dados de medição de uso do GKE aos dados de faturamento exportados do GCP no BigQuery para estimar uma discriminação de custos por cluster, namespace e rótulos. Observe que os dados gerados pela medição de uso do GKE são meramente informativos e não afetam sua fatura do GCP. Para os dados de faturamento, a fatura do GCP é a única fonte de verdade.

As seguintes limitações se aplicam:

  • Quaisquer descontos especiais de contrato e créditos não são considerados.
  • Recursos criados fora do escopo do GKE não são rastreados por namespace ou rótulo.
  • CPU, GPU, memória, armazenamento e saída de rede são rastreados.
  • No momento, a medição de uso não funciona com nós que usam tipos de máquina personalizados.

Pré-requisitos

Antes de usar a medição de uso, atenda aos seguintes pré-requisitos:

  • GKE v1.11.4-gke.8 ou superior, v1.12.6-gke.8 ou superior, ou v1.13.0 ou superior.
  • Versão 227.0.0 ou superior do comando gcloud. Use gcloud --version para verificar.
  • Você precisa ativar a API BigQuery no seu projeto do Google Cloud Platform. Se você ativou o GKE pela primeira vez depois de julho de 2018, isso já está feito.
  • Você precisa ativar a exportação de faturamento para o BigQuery.

Como ativar a medição de uso

Para ativar a medição de uso, primeiro crie um conjunto de dados do BigQuery para o cluster, vários clusters no projeto ou o projeto inteiro. Para ver mais informações sobre como escolher um mapeamento entre conjuntos de dados e clusters, consulte Como escolher um ou mais conjuntos de dados do BigQuery.

Em seguida, crie ou modifique o cluster para usar a medição de uso.

Como criar o conjunto de dados do BigQuery

Para usar a medição de uso para clusters em seu projeto do Google Cloud Platform, primeiro crie o conjunto de dados do BigQuery. Em seguida, configure os clusters para usá-lo. Use um único conjunto de dados do BigQuery para armazenar informações de medição de uso para vários clusters no mesmo projeto.

Para saber mais detalhes, consulte Como criar conjuntos de dados.

Como ativar a medição de uso para um cluster

Para ativar a medição de uso em um cluster novo ou atual, use a sinalização --resource-usage-bigquery-dataset BIGQUERY_DATASET ao criar o comando gcloud. Atualmente, não é possível ativar a medição de uso com o Console do Google Cloud Platform.

Como criar um novo cluster:

gcloud

Para criar um cluster com a medição de uso ativada, execute o comando a seguir. Substitua o nome do cluster no local em que você vê test-cluster e substitua seu conjunto de dados do BigQuery no local em que você vê test_usage_metering_dataset.

Para inserir seus próprios valores no exemplo antes de colar, clique em qualquer campo highlighted para editar o valor. Para redefinir os valores, atualize esta página.

gcloud beta container clusters create test-cluster \
  --resource-usage-bigquery-dataset test_usage_metering_dataset

Se necessário, uma tabela é criada no conjunto de dados do BigQuery quando o cluster é iniciado.

Como modificar um cluster atual:

gcloud

Para ativar a medição de uso em um cluster atual, execute o comando a seguir. Substitua o nome do seu cluster no local em que você vê test-cluster e substitua o nome do seu conjunto de dados do BigQuery no local em que você vê test_usage_metering_dataset.

Para inserir seus próprios valores no exemplo antes de colar, clique em qualquer campo highlighted para editar o valor. Para redefinir os valores, atualize esta página.

gcloud beta container clusters update test-cluster \
  --resource-usage-bigquery-dataset test_usage_metering_dataset

Se necessário, uma tabela é criada no conjunto de dados do BigQuery quando o cluster é atualizado.

Como desativar a medição de uso

gcloud

Para desativar a medição de uso em um cluster, execute o comando a seguir. Substitua o nome do cluster no local em que você vê test-cluster.

Para inserir seus próprios valores no exemplo antes de colar, clique em qualquer campo highlighted para editar o valor. Para redefinir os valores, atualize esta página.

gcloud beta container clusters update test_cluster \
  --clear-resource-usage-bigquery-dataset

Como verificar se a medição de uso está ativada

Para verificar se a medição de uso está ativada em um cluster e qual conjunto de dados do BigQuery armazena os dados de medição de uso do cluster, use o comando gcloud beta container clusters describe. No exemplo a seguir, substitua o nome do cluster no local em que você vê test-cluster.

Para inserir seus próprios valores no exemplo antes de colar, clique em qualquer campo highlighted para editar o valor. Para redefinir os valores, atualize esta página.

gcloud beta container clusters describe test-cluster \
  --format="value(resourceUsageExportConfig)"

A saída estará vazia se a medição de uso não estiver ativada e, caso contrário, mostrará o conjunto de dados do BigQuery usado pelo cluster, como nesta saída:

bigqueryDestination={u'datasetId': u'test_usage_metering_dataset'}

Dados de medição de uso no BigQuery

A tabela a seguir descreve o conteúdo dos dados de medição de uso exportados para o BigQuery.

Campo Tipo Descrição
cluster_location STRING O nome da zona ou região do Compute Engine em que o cluster do GKE reside.
cluster_name STRING O nome do cluster do GKE.
namespace STRING O namespace do Kubernetes a partir do qual o uso é gerado.
resource_name STRING O nome do recurso, como "cpu", "memória" e "armazenamento".
sku_id STRING O ID do SKU do recurso de nuvem do GCP subjacente.
start_time TIMESTAMP O carimbo de data/hora do UNIX de quando o uso começou.
end_time TIMESTAMP O carimbo de data/hora do UNIX de quando o uso terminou.
fraction FLOAT A fração de um recurso de nuvem consumido pelo uso. Para um recurso de nuvem dedicado usado exclusivamente por um único namespace, a fração é sempre 1.0. Para recursos compartilhados entre vários namespaces, a fração é calculada como o valor solicitado dividido pela capacidade total do recurso de nuvem subjacente.
cloud_resource_size INTEGER O tamanho do recurso do GCP subjacente. Por exemplo, o tamanho de vCPUs em uma instância de n1-standard-2 é 2.
labels.key STRING A chave de um rótulo do Kubernetes associado ao uso.
labels.value STRING O valor de um rótulo do Kubernetes associado ao uso.
project.id STRING O ID do projeto em que o cluster GKE reside.
usage.amount FLOAT A quantidade de usage.unit usada.
usage.unit STRING A unidade base em que o uso do recurso é medido. Por exemplo, a unidade base para armazenamento padrão é byte-segundos.

Como escolher um ou mais conjuntos de dados do BigQuery

Um conjunto de dados pode conter dados de medição de uso para um ou mais clusters em seu projeto. O uso de um ou vários conjuntos de dados depende das suas necessidades de segurança:

  • Um único conjunto de dados para todo o projeto simplifica a administração.
  • Um conjunto de dados por cluster permite delegar acesso granular aos conjuntos de dados.
  • Um conjunto de dados por grupo relacionado de clusters permite que você encontre a combinação certa de simplicidade e granularidade para suas necessidades.

Como exibir dados de medição de uso com o BigQuery

Para visualizar os dados de medição de uso com o BigQuery, consulte a tabela gke_cluster_resource_usage no conjunto de dados relevantes do BigQuery. Para ver mais informações sobre o uso de consultas no Cloud Bigtable, leia Como executar consultas. Os campos no esquema são estáveis, embora mais campos possam ser adicionados no futuro.

Esta consulta é apenas um exemplo. Personalize sua consulta para encontrar os dados de que você precisa.

Para inserir seus próprios valores no exemplo antes de colar, clique em qualquer campo highlighted para editar o valor. Para redefinir os valores, atualize esta página.

SELECT
  cluster_name,
  labels,
  fraction
FROM
  `PROJECT-ID.USAGE_METERING.gke_cluster_resource_usage`
WHERE
  namespace="accounting"

Expanda as seções a seguir para ver exemplos mais sofisticados.

Como exibir dados de medição de uso com um painel do Data Studio

É possível visualizar os dados de medição de uso com um painel do Data Studio que permite filtrar seus dados por nome de cluster, namespace ou rótulo e ajustar o período do relatório de forma dinâmica. Se você é um usuário avançado do Data Studio e do BigQuery, é possível criar um painel totalmente personalizado ou clonar um painel que criamos especificamente para a medição de uso.

Depois de atender aos pré-requisitos, crie as fontes de dados do Data Studio que consultem a medição de uso e os dados do Cloud Billing no BigQuery. Em seguida, copie um painel do Data Studio para o projeto e configure-o para usar suas três fontes de dados. Agora é possível usar o painel para entender a medição de uso dos seus clusters.

Pré-requisitos

  1. Ative a exportação dos dados de faturamento do Google Cloud Platform para o BigQuery caso ainda não esteja ativada. Durante esse processo, você cria um conjunto de dados, mas a tabela no conjunto de dados leva até cinco horas para aparecer e começar a ser preenchida. Quando a tabela for exibida, anote o nome. Ele será semelhante a gcp_billing_export_v1_<var>BILLING_ACCOUNT_ID</var>.
  2. Ative o Data Studio se ainda não estiver ativado.
  3. Reúna as informações a seguir, pois elas serão necessárias para modificar as consultas que impulsionam o painel:

    • Conjunto de dados de exportação do Cloud Billing e nome da tabela do primeiro pré-requisito.
    • Conjunto de dados de medição de uso e nome da tabela criada no item Criar conjunto de dados do BigQuery.
    • Código do projeto do GCP.

Criar as fontes de dados do BigQuery

Essas consultas são complexas, mas você só precisa substituir os valores de rótulo pelos valores reunidos ao concluir os pré-requisitos. Em cada uma das consultas, faça as seguintes substituições:

  • Substitua PROJECT_ID pelo código do projeto (não pelo nome do projeto).
  • Substitua USAGE_METERING_DATASET pelo conjunto de dados em que o cluster grava sua medição de uso.
  • Substitua BILLING_DATASET e BILLING_TABLE pelo conjunto de dados e pela tabela em que os dados do Cloud Billing são exportados.

Para cada consulta abaixo, crie uma fonte de dados do Data Studio.

  1. Visite as fontes de dados.
  2. Clique no ícone + na parte inferior direita da tela para adicionar uma fonte de dados.
  3. Selecione BigQuery.
  4. Selecione Consulta personalizada e o código do projeto.
  5. Nomeie a fonte de dados. Clique em Fonte de dados sem título na parte superior da tela e substitua o texto por um nome descritivo para sua consulta. Abaixo, os títulos de cada consulta são nomes apropriados às fontes de dados.
  6. Depois de substituir todos os marcadores na consulta, cole-a no Editor de consultas. Certifique-se de que a opção Usar SQL legado não esteja selecionada.
  7. Clique em Conectar no canto superior direito da tela.

Consulta BreakdownQuery

Para inserir seus próprios valores no exemplo antes de colar, clique em qualquer campo highlighted para editar o valor. Para redefinir os valores, atualize esta página.

SELECT
  resource_usage.cluster_name,
  resource_usage.cluster_location,
  resource_usage.namespace,
  resource_usage.labels,
  resource_usage.resource_name,
  resource_usage.sku_id,
  resource_usage.start_time AS usage_start_time,
  resource_usage.end_time AS usage_end_time,
  resource_usage.usage.amount * gcp_billing_export.rate AS cost
FROM
  `PROJECT_ID.USAGE_METERING_DATASET.gke_cluster_resource_usage` AS resource_usage
LEFT JOIN (
  SELECT
    sku.id AS sku_id,
    SUM(cost) / SUM(usage.amount) AS rate,
    MIN(usage_start_time) AS min_usage_start_time,
    MAX(usage_end_time) AS max_usage_end_time
  FROM
    `PROJECT_ID.BILLING_DATASET.BILLING_TABLE`
  WHERE
    project.id = "PROJECT_ID"
  GROUP BY
    sku_id) AS gcp_billing_export
ON
  resource_usage.sku_id = gcp_billing_export.sku_id
WHERE
  resource_usage.start_time >= gcp_billing_export.min_usage_start_time
  AND resource_usage.end_time <= gcp_billing_export.max_usage_end_time

Consulta GKEProjectCostFromGCP

Para inserir seus próprios valores no exemplo antes de colar, clique em qualquer campo highlighted para editar o valor. Para redefinir os valores, atualize esta página.

SELECT
*
FROM
  `PROJECT_ID.BILLING_DATASET.BILLING_TABLE`
WHERE
  project.id = "PROJECT_ID"

Criar o painel do Data Studio

Criamos um painel que pode ser copiado para seu projeto. Quando você copia o painel, precisa selecionar três fontes de dados recém-criadas.

  1. Clique neste link do painel.
  2. Clique no botão Copiar Faça uma cópia deste ícone de relatório, no canto superior direito da tela.
  3. Para as fontes de dados, selecione as origens de dados que você acabou de criar. Use BreakdownQuery no primeiro campo e GKEProjectCostFromGCP no segundo.
  4. Clique em Criar relatório.

Uma animação na demonstração do painel de medição de uso exibe essas etapas.

O painel é criado e é possível acessá-lo a qualquer momento na lista de relatórios do Data Studio para o projeto.

Usar o painel do Data Studio

Cada tela do painel também é exibida na animação da demonstração do painel de medição de uso.

O painel tem três páginas separadas:

  • A medição de uso Visualização mensal mostra a proporção geral de uso do cluster entre todos os clusters com a medição de uso no projeto, bem como informações detalhadas sobre o tipo de recurso (como CPU ou memória) por namespace. É possível limitar os dados do relatório a um ou mais clusters ou namespaces individuais.

    Exemplo de medição de uso Visualização mensal

  • A medição de uso Tendências de custo por namespace mostra as tendências de uso de todos os clusters com a medição de uso por namespace. É possível selecionar um ou mais clusters individuais, namespaces, recursos ou SKUs.

    Exemplo de medição de uso Tendências de custo por namespace

  • A medição de uso Tendências de custo por rótulo mostra tendências de uso de todos os clusters com a medição de uso por rótulo. É possível selecionar um ou mais clusters individuais, namespaces, recursos ou SKUs.

    Exemplo de medição de uso Tendências de custo por rótulo

É possível alterar as páginas usando as setas próximas à parte superior esquerda da tela. Altere o período de uma página usando o seletor de datas. Para compartilhar o relatório com membros da sua organização ou revogar o acesso, clique no link Compartilhar relatório, que se parece com uma pessoa com o símbolo +.

Depois de copiar o relatório para o projeto, personalize-o com o editor de relatórios do Data Studio. Mesmo que o modelo de relatório fornecido pelo Google seja alterado, sua cópia não será afetada.

Demonstração do painel de medição de uso

A animação a seguir ilustra as etapas para criar e usar o painel. Se a animação não for reproduzida automaticamente, clique em qualquer lugar da animação para iniciá-la.

Demonstração do painel de medição de uso, também descrito no texto

A seguir

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Kubernetes Engine