Noções básicas sobre o uso de recursos do cluster

Nesta página, você aprende a medir o uso do GKE. Assim, será possível entender os perfis da utilização dos clusters do Google Kubernetes Engine (GKE) e relacionar o uso a equipes ou unidades de negócios individuais dentro da organização. A medição de uso do GKE não é cobrada no seu projeto. Com ela, você analisa a utilização de recursos em um nível granular.

Visão geral

Com a medição de uso do GKE, você rastreia informações sobre as solicitações e o uso real de recursos das cargas de trabalho do cluster. Atualmente, essas informações incluem CPU, GPU, TPU, memória, armazenamento e saída de rede (opcional). É possível diferenciar o uso de recursos por meio de namespaces e de rótulos (links em inglês) do Kubernetes ou uma combinação de ambos.

Os dados ficam armazenados no BigQuery. Nele, é possível consultá-los diretamente ou exportá-los para análise usando ferramentas externas, como o Google Data Studio.

A medição de uso do GKE é aplicável a casos como estes:

  • Rastrear o consumo real e as solicitações dos recursos por locatário em um cluster de multilocação. Nesse cluster, cada locatário é operado em um determinado namespace.
  • Determinar o consumo de recursos de uma carga de trabalho em execução em um determinado cluster. Isso é feito ao atribuir um rótulo exclusivo aos objetos do Kubernetes associados à carga de trabalho.
  • Identificar as cargas de trabalho com solicitações de recursos que sejam muito diferentes do consumo real. Assim, é possível aumentar a eficiência da alocação de recursos em cada carga de trabalho.

Modificações na versão Beta inicial

Após o lançamento da versão Beta inicial, as modificações a seguir foram feitas na medição de uso do GKE:

  • Agora o consumo real de recursos também é rastreado nos clusters que executam o GKE nas versões v1.12.8-gke.8 e superior, v1.13.6-gke.7 e superior ou 1.14.2-gke.8 e superior. A medição de consumo de recursos é armazenada na tabela gke_cluster_resource_consumption do conjunto de dados do BigQuery. Antes, somente as solicitações de recursos eram rastreadas.
  • As solicitações da TPU agora são rastreadas, exceto o consumo real de recursos delas.
  • Agora é possível rastrear as solicitações e o consumo real de recursos em nós que usam tipos de máquina personalizados.
  • Agora é possível ativar a medição de uso do GKE ao criar ou atualizar um cluster no Console do Google Cloud.
  • A medição de uso do GKE agora recria automaticamente a tabela do BigQuery quando ela é excluída. Os dados históricos são perdidos.
  • A medição de uso do GKE não recria automaticamente o conjunto de dados do BigQuery quando ele é excluído. O usuário precisa garantir que o conjunto de dados existe.

Upgrade

Todas as alterações são compatíveis com a versão Beta inicial, e não é necessário modificar ou migrar os dados.

A medição de consumo de recursos não é ativada automaticamente quando você faz upgrade de um cluster para versões do GKE compatíveis com ela. É preciso ativá-la explicitamente usando a sinalização --enable-resource-consumption-metering. Outra tabela será criada automaticamente no conjunto de dados do BigQuery. Ambas as tabelas terão o mesmo esquema.

Após o upgrade, você só precisa criar um novo painel do Data Studio para adicionar as informações sobre o consumo real de recursos.

Limitações

É possível usar as consultas de amostra do BigQuery e o modelo do Google Data Studio para unir os dados de medição de uso do GKE aos dados exportados do Google Cloud no BigQuery com o objetivo de estimar uma discriminação de custos por cluster, namespace e rótulos. Os dados de medição de uso do GKE servem apenas para orientação e não afetam sua fatura do Google Cloud. Para os dados de faturamento, sua fatura do Google Cloud é a única fonte de informações.

As limitações a seguir são aplicáveis:

  • Créditos ou descontos especiais em contratos não são considerados.
  • Recursos criados fora do escopo do GKE não são rastreados por namespaces ou rótulos.
  • O Data Studio não é compatível com a visualização de tipos de máquinas com capacidade de bursting.

Pré-requisitos

Antes de utilizar a medição de uso do GKE, atenda aos pré-requisitos a seguir:

  • Para rastrear o consumo real de recursos, o cluster precisa executar o GKE nas versões v1.11.10-gke.5 e superior, v1.12.8-gke.8 e superior, v1.13.6-gke.7 e superior ou 1.14.2-gke.3 e superior.
  • É necessário ativar a exportação do faturamento do BigQuery. As cobranças estão associadas ao uso do BigQuery.
  • A versão 250.0.0 ou superior do comando gcloud é obrigatória. Use gcloud --version para verificar.
  • É preciso ativar a API BigQuery no projeto do Google Cloud. Se você ativou o GKE pela primeira vez depois de julho de 2018, isso já está feito.
  • Se você estiver usando tipos de máquina E2 ou N2, a versão do cluster precisará ser do GKE 1.15.11-gke.9 ou superior.

Como ativar a medição de uso do GKE

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

Em seguida, ative a medição de uso do GKE ao criar um novo cluster ou modificar um atual.

Se quiser, é possível criar um painel do Google Data Studio para visualizar o uso de recursos dos clusters.

Como criar o conjunto de dados do BigQuery

Para usar a medição de uso do GKE para clusters em seu projeto do Google Cloud, primeiro crie o conjunto de dados do BigQuery e configure clusters para usá-lo. Em um único conjunto de dados do BigQuery, é possível armazenar informações sobre o uso de recursos de vários clusters no mesmo projeto.

Para mais detalhes, consulte Como criar conjuntos de dados. Defina Default table expiration para o conjunto de dados como Never para que a tabela não expire. No entanto, na segunda versão Beta da medição de uso do GKE, se uma tabela expirar, ela será recriada automaticamente como uma tabela vazia.

Como ativar a medição de uso do GKE em um cluster

É possível ativar a medição de uso do GKE em um cluster novo ou atual, usando o comando gcloud ou o Console do Cloud.

Por padrão, nos clusters que executam o GKE nas versões v1.12.8-gke.8 e superior ou v1.13.6-gke.7 e superior, ativar a medição de uso do GKE também habilita a medição do consumo real. Para desativar seletivamente a medição de consumo de recursos enquanto continua a rastrear solicitações de recursos, consulte as instruções específicas para ativar a medição de uso do GKE usando o comando gcloud, neste tópico.

A medição de saída de rede está desativada por padrão. Para ativá-la, consulte neste tópico os avisos e instruções em Opcional: como ativar a medição da saída de rede.

Como criar um novo cluster

Crie um cluster usando a ferramenta gcloud ou o Console do Google Cloud.

gcloud

Para criar um cluster com a medição de uso do GKE ativada, execute o comando a seguir:

gcloud container clusters create cluster-name \
  --resource-usage-bigquery-dataset resource-usage-dataset

A medição do consumo de recursos é ativada por padrão nos clusters que executam o GKE nas versões v1.12.8-gke.8 e superior ou v1.13.6-gke.7 e superior. Para desativá-lo e rastrear somente solicitações de recursos, adicione a sinalização --no-enable-resource-consumption-metering ao comando acima. Você também precisa modificar os outros códigos de exemplo deste tópico para que eles não consultem o consumo de recursos.

Se necessário, as tabelas exigidas são criadas no conjunto de dados do BigQuery quando o cluster é iniciado.

Console

Para criar um cluster com a medição de uso do GKE ativada:

  1. Acesse o menu do Google Kubernetes Engine no Console do Cloud.

    Acessar o menu do Google Kubernetes Engine

  2. Clique no botão Criar cluster.

  3. No painel de navegação, em Cluster, clique em Recursos.

  4. Selecione Ativar medição de uso do GKE.

  5. Insira o nome do conjunto de dados do BigQuery.

  6. Se quiser, habilite a opção Ativar medição de saída de rede depois de consultar os avisos e instruções em Opcional: como ativar a medição da saída de rede.

  7. Continue configurando o cluster e clique em Criar.

Como configurar um cluster atual

gcloud

Para ativar a medição de uso do GKE em um cluster atual, execute o comando a seguir:

gcloud container clusters update cluster-name \
  --resource-usage-bigquery-dataset resource-usage-dataset

A medição do consumo de recursos é ativada por padrão nos clusters que executam o GKE nas versões v1.12.8-gke.8 e superior ou v1.13.6-gke.7 e superior. Para desativá-lo e rastrear somente solicitações de recursos, adicione a sinalização --no-enable-resource-consumption-metering ao comando acima. Você também precisa modificar os outros códigos de exemplo deste tópico para que eles não consultem o consumo de recursos.

Também é possível alterar o conjunto de dados que um cluster atual usa para armazenar os respectivos dados de medição de uso. Para isso, altere o valor da sinalização --resource-usage-bigquery-dataset.

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

Console

  1. Acesse o menu do Google Kubernetes Engine no Console do Cloud.

    Acessar o menu do Google Kubernetes Engine

  2. Clique no botão Editar referente ao cluster que você quer modificar. Ele é semelhante a um lápis.

  3. Ative a Medição de uso do GKE.

  4. Insira o nome do conjunto de dados do BigQuery.

  5. Se quiser, habilite a opção Ativar medição de saída de rede depois de consultar os avisos e instruções em Opcional: como ativar a medição da saída de rede.

  6. Continue configurando o cluster e clique em Salvar.

Opcional: como ativar a medição da saída de rede

Por padrão, os dados de saída de rede não são coletados ou exportados. A medição da saída de rede requer um agente de medição de rede (NMA, na sigla em inglês) em execução em cada nó. O NMA, executado como um pod privilegiado, consome alguns recursos no nó (CPU, memória e espaço em disco), além de ativar a sinalização nf_conntrack_acct sysctl (em inglês) no kernel para a contabilidade do fluxo de rastreamento de conexão.

Se você já tiver visto esses avisos, é possível ativar o rastreamento de saída de rede e usá-lo com a medição de uso do GKE. Para ativar o acompanhamento de saída de rede, inclua a opção --enable-network-egress-metering ao criar ou atualizar o cluster, ou selecione Ativar a medição de saída de rede ao habilitar a medição de uso do GKE no Console do Google Cloud.

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

Para verificar se a medição de uso do GKE está ativada em um cluster e qual conjunto de dados do BigQuery armazena os dados de uso de recursos do cluster, use o comando gcloud container clusters describe.

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

Se você não ativar a medição de uso do GKE, receberá uma saída vazia. Quando a medição é ativada, é mostrado o conjunto de dados do BigQuery usado pelo cluster em uma saída como esta:

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

Como desativar a medição de uso do GKE

gcloud

Para desativar a medição de uso do GKE em um cluster, execute o comando a seguir:

gcloud container clusters update cluster-name \
    --clear-resource-usage-bigquery-dataset

Console

  1. Acesse o menu do Google Kubernetes Engine no Console do Cloud.

    Acessar o menu do Google Kubernetes Engine

  2. Clique no botão Editar referente ao cluster que você quer modificar. Ele é semelhante a um lápis.

  3. Desative a Medição de uso do GKE.

  4. Clique em Salvar.

Como escolher um ou mais conjuntos de dados do BigQuery

Um conjunto de dados pode conter dados de medição de uso do GKE referentes a um ou mais clusters no 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 visualizar dados de medição de uso do GKE utilizando um painel do Data Studio

É possível visualizar os dados de medição de uso do GKE por meio de um painel do Data Studio. Com ele, você filtra os dados por nome de cluster, namespace ou rótulo, além de ajustar o período de geração de relatórios dinamicamente. Se você tem experiência no Data Studio e BigQuery, crie um painel totalmente personalizado. No entanto, também é possível clonar um painel que criamos especificamente para a medição de uso do GKE.

Use o painel para visualizar as solicitações e o consumo de recursos nos clusters ao longo do tempo.

Pré-requisitos

  1. Ative Exportar dados de faturamento do Google Cloud para o BigQuery, caso ainda não esteja ativado. 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 é exibida, o nome dela é gcp_billing_export_v1_billing-account-id.
  2. Ative a medição de uso do GKE em pelo menos um cluster no projeto. Anote o nome escolhido para o conjunto de dados do BigQuery.
  3. Ative o Data Studio se ainda não estiver ativado.
  4. Consiga as informações a seguir, que são necessárias para configurar o painel:

    • Tabela de dados e ID do conjunto de dados de exportação do Faturamento do Cloud
    • ID do conjunto de dados de medição de uso do GKE
  5. Ter, pelo menos, a versão 2.0.58 da CLI do BigQuery. É possível executar bq version para verificar a versão e gcloud components update para atualizar a CLI do BigQuery.

Criar a tabela de detalhamento de custos do BigQuery

  1. Faça o download dos modelos de consulta:

    • Se você ativou a medição de consumo, faça o download de this template.
    • Se você não ativou a medição de consumo, faça o download de this template.
  2. Defina as seguintes variáveis de ambiente.

    export GCP_BILLING_EXPORT_TABLE_FULL_PATH=PROJECT_ID.DATASET_ID.TABLE_ID_FOR_YOUR_BILLING_EXPORT_TABLE
    export USAGE_METERING_PROJECT_ID=YOUR_USAGE_METERING_PROJECT_ID
    export USAGE_METERING_DATASET_ID=YOUR_USAGE_METERING_DATASET_ID
    export USAGE_METERING_START_DATE=YOUR_USAGE_METERING_START_DATE
    export COST_BREAKDOWN_TABLE_ID=YOUR_COST_BREAKDOWN_TABLE_ID
    export USAGE_METERING_QUERY_TEMPLATE=PATH_TO_TEMPLATE_YOU_DOWNLOADED
    export USAGE_METERING_QUERY=YOUR_DESIRED_PATH_FOR_THE_RENDERED_QUERY
    

    Por exemplo:

    export GCP_BILLING_EXPORT_TABLE_FULL_PATH=my-billing-project.my_billing_export.gcp_billing_export_v1_xxxx
    export USAGE_METERING_PROJECT_ID=usage-metering-dev-project
    export USAGE_METERING_DATASET_ID=usage_metering_dataset
    export USAGE_METERING_START_DATE=2020-05-01
    export COST_BREAKDOWN_TABLE_ID=usage_metering_cost_breakdown
    export USAGE_METERING_QUERY_TEMPLATE=usage_metering_query_template_request_only.sql
    export USAGE_METERING_QUERY=cost_breakdown_query.sql
    

  3. Copie e execute o seguinte comando para renderizar a consulta do modelo.

    sed \
    -e "s/\${fullGCPBillingExportTableID}/$GCP_BILLING_EXPORT_TABLE_FULL_PATH/" \
    -e "s/\${projectID}/$USAGE_METERING_PROJECT_ID/" \
    -e "s/\${datasetID}/$USAGE_METERING_DATASET_ID/" \
    -e "s/\${startDate}/$USAGE_METERING_START_DATE/" \
    "$USAGE_METERING_QUERY_TEMPLATE" \
    > "$USAGE_METERING_QUERY"
    

  4. Execute o comando a seguir para configurar a tabela de detalhamento de custos, atualizada a cada 24 horas, usando a consulta renderizada na etapa anterior.

    bq query \
    --project_id=$USAGE_METERING_PROJECT_ID \
    --use_legacy_sql=false \
    --destination_table=$USAGE_METERING_DATASET_ID.$COST_BREAKDOWN_TABLE_ID \
    --schedule='every 24 hours' \
    --display_name="GKE Usage Metering Cost Breakdown Scheduled Query" \
    --replace=true \
    "$(cat $USAGE_METERING_QUERY)"
    

Criar a fonte de dados do BigQuery

  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 nas palavras Fonte de dados sem título na parte superior da tela e substitua o texto por um nome descritivo.
  6. Cole a consulta a seguir no "Editor de consultas".

    SELECT
      *
    FROM
      `PROJECT_ID.USAGE_METERING_DATASET.COST_BREAKDOWN_TABLE_ID`
    
  7. Clique em Conectar no canto superior direito da tela.

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 fontes que você acabou de criar.
  4. Clique em Criar relatório.

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

O painel contém vários relatórios:

Detalhes de uso
Proporção geral de uso de cluster entre todos os clusters que enviam dados de medição de uso para a mesma fonte de dados do BigQuery, além de informações detalhadas sobre o tipo de recurso por namespace, incluindo CPU, memória ou saída de rede. É possível limitar os dados do relatório a um ou mais clusters ou namespaces individuais.
Detalhamento de uso com recursos não alocados
Semelhante ao anterior, mas esse relatório distribui os recursos não alocados proporcionalmente em todos os namespaces. Isso inclui recursos inativos e todos os outros que a medição de uso do GKE não aloca atualmente a locatários específicos.
Tendências de custo: detalhamento por namespace
Tendências de custo entre todos os clusters que enviam dados de medição de uso para a mesma fonte de dados do BigQuery, detalhadas por namespace. É possível selecionar um ou mais clusters, namespaces, recursos ou SKUs individuais.
Tendências de custo: detalhamento por rótulo
Tendências de custo entre todos os clusters que enviam dados de medição de uso para a mesma fonte de dados do BigQuery. É possível selecionar um ou mais clusters, recursos e nomes ou valores de rótulo individuais.
Medição baseada no consumo
Tendências de consumo entre todos os clusters que enviam dados de medição de uso para a mesma fonte de dados do BigQuery. É possível selecionar um ou mais namespaces e chaves ou valores de rótulo individuais. Esse relatório será preenchido somente se a medição de consumo de recursos estiver ativada em pelo menos um cluster.

É 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.

Como analisar os dados de medição de uso do GKE utilizando o BigQuery

Para ver dados sobre solicitações de recursos usando o BigQuery, consulte a tabela gke_cluster_resource_usage no conjunto de dados relevante do BigQuery.

Para ver dados sobre o consumo real de recursos, consulte a tabela gke_cluster_resource_consumption. Os dados de consumo de saída de rede permanecem em gke_cluster_resource_usage porque não há um conceito de solicitações de recursos para a saída.

Para ver mais informações sobre como usar consultas no BigQuery, consulte Como executar consultas. Os campos do esquema são estáveis, ainda que mais campos possam ser adicionados no futuro.

Essas consultas são exemplos simples. Personalize sua consulta para encontrar os dados de que você precisa.

Consultar solicitações de recursos

SELECT
  cluster_name,
  labels,
  usage
FROM
  'cluster-gcp-project.usage-metering-dataset.gke_cluster_resource_usage'
WHERE
  namespace="namespace-name"

Consultar o consumo de recursos

SELECT
  cluster_name,
  labels,
  usage
FROM
  '{usage_metering_consumption_table_fully_qualified}}'
WHERE
  namespace="namespace-name"

Mais exemplos

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

Esquema de medição de uso do GKE no BigQuery

Veja na tabela a seguir o esquema das tabelas de medição de uso do GKE no conjunto de dados do BigQuery. Se o cluster estiver executando uma versão do GKE compatível com a medição do consumo e as solicitações de recursos, outra tabela será criada com o mesmo esquema.

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 da SKU do recurso de nuvem subjacente do Google Cloud.
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 subjacente do Google Cloud. 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.

A seguir