Como migrar para o Stackdriver Kubernetes Engine Monitoring

Há duas opções para o suporte de monitoramento e geração de registro no Google Kubernetes Engine (GKE). Elas são fornecidas por todas as versões do GKE disponíveis para novos clusters e para atualizações de clusters atuais:

  • Stackdriver legado: para ler a documentação relevante, consulte as páginas Monitoring e Logging.

  • Stackdriver Kubernetes Engine Monitoring: para ler a documentação relevante, consulte este tópico.

Nesta página, você aprenderá as diferenças entre essas duas opções e o que alterar para migrar do Stackdriver legado para o Stackdriver Kubernetes Engine Monitoring.

Quando preciso migrar?

É possível migrar as configurações atuais do Monitoring e do Logging do Stackdriver legado para o Stackdriver Kubernetes Engine Monitoring a qualquer momento. No entanto, lembre-se de que uma versão futura do GKE pode suspender o suporte ao Stackdriver legado. Se isso acontecer, será necessário migrar para o Stackdriver Kubernetes Engine Monitoring antes se você quiser continuar usando o suporte ao Monitoring e ao Logging.

A tabela a seguir resume as próximas versões esperadas do GKE com as respectivas opções de suporte:

Versão GKE Stackdriver legado Stackdriver Kubernetes Engine Monitoring
1.10 – 1.12.5 Padrão opcional (Beta)
1.12.7 Padrão Opcional
1.13 Padrão Opcional
1.14 Opcional Padrão
1.15 Não disponível Padrão

O que vai mudar?

O Stackdriver Kubernetes Engine Monitoring usa um modelo de dados diferente para organizar métricas, registros e metadados. Aqui estão algumas mudanças específicas dos clusters usando o Stackdriver Kubernetes Engine Monitoring:

  • Mudança na navegação: os painéis do Stackdriver Monitoring estão em um novo menu chamado Resources > Kubernetes Engine New. Esse painel não aparecerá se você não tiver clusters usando o Stackdriver Kubernetes Engine Monitoring.

  • Mudanças nos nomes dos tipos de recursos monitorados: por exemplo, seus nós do Kubernetes estão listados no tipo de recurso monitorado k8s_node, que é um nó do Kubernetes, em vez de em gce_instance (instância de VM do Compute Engine).

  • Mudanças nos nomes de métricas do Kubernetes: no Stackdriver Kubernetes Engine Monitoring, nomes de tipos de métricas agora começam com o prefixo kubernetes.io/ em vez do prefixo container.googleapis.com/.

A seguinte tabela resume as mudanças anteriores:

Alteração Stackdriver legado (antigo) Stackdriver Kubernetes Engine Monitoring (novo)
Menus do painel Resources > Kubernetes Engine Resources > Kubernetes Engine New
Prefixos métricos container.googleapis.com kubernetes.io
Tipos de recursos gke_container (métricas)
container (registros)
gce_instance
(nenhum)
gke_cluster
k8s_container
k8s_container
k8s_node
k8s_pod
k8s_cluster

O que preciso fazer?

Nesta seção, você encontrará informações mais específicas sobre as mudanças do modelo de dados no Stackdriver Kubernetes Engine Monitoring e o impacto delas nas configurações de monitoramento e de geração de registro atuais.

Como usar o painel de status da migração

Para identificar as configurações do Monitoring e do Logging a serem atualizadas como parte da migração para o Stackdriver Kubernetes Engine Monitoring, faça o seguinte:

  1. No Console do Cloud, acesse o Monitoramento:

    Acessar o Monitoramento

  2. Para acessar o status de migração, faça o seguinte:

    • Clique em Settings se essa opção estiver listada no painel de navegação. Em seguida, selecione a guia Kubernetes Migration Status.

    • Se ela não estiver listada, na barra de ferramentas, clique em Menu , selecione Workspace Settings e escolha Kubernetes Migration Status.

Não há ações pendentes no painel de amostra a seguir:

Exibição do painel de migração do Stackdriver.

Mudanças de tipo de recurso

O Stackdriver Kubernetes Engine Monitoring tem novos nomes de tipo de recurso, novos nomes de exibição de tipo de recurso e novos nomes para os rótulos que identificam recursos específicos. Essas mudanças estão listadas na tabela a seguir.

Mudanças de tipo de recurso
Tipo de recurso do Stackdriver legado (antigo) Tipo de recurso do Stackdriver Kubernetes Engine Monitoring (novo)
Notas de rodapé da tabela:
1 No novo tipo de recurso usado (apenas) para monitoramento, instance_id torna-se node_name em metadata.system_labels.
2 zone refere-se ao local desse contêiner ou instância. location refere-se ao local do nó do mestre do cluster.
3 metadata.system_labels.node_name não está disponível em tipos de recurso k8s_container usados para geração de registros. Não é possível pesquisar registros por nome de nó.
4 O tipo de recurso gce_instance pode representar nós do Kubernetes, bem como instâncias de VM que não são do Kubernetes. Ao fazer upgrade para o Stackdriver Kubernetes Engine Monitoring, os usos relacionados a nó são alterados para usar o novo tipo de recurso, k8s_node, incluindo registros no nível do nó com os seguintes nomes: kubelet, docker, kube-proxy, startupscript e node-problem-detector.
5 Os nós k8s_pod e k8s_cluster podem incluir registros que não estão presentes no suporte ao Stackdriver legado.
Somente Monitoring:
gke_container (Contêiner do GKE)

Rótulos:
  cluster_name
  container_name
  instance_id1
  namespace_id
  pod_id
  project_id
  zone2

Somente Logging:
container (Contêiner do GKE)

Rótulos:
  cluster_name
  container_name
  instance_id1
  namespace_id
  pod_id
  project_id
  zone2

Monitoring e Logging:
k8s_container (Contêiner do Kubernetes)

Rótulos:
  cluster_name
  container_name
  metadata.system_labels.node_name3
  namespace_name
  pod_name
  project_id
2   location

Somente Logging::
gce_instance (Instância de VM do Compute Engine)4

Rótulos:
  cluster_name
  instance_id
  project_id
  zone2
Monitoring e Logging
k8s_node4 (Nó do Kubernetes)

Rótulos:
  cluster_name
  node_name
  project_id
  location2

(nenhum)
Monitoring e Logging:
k8s_pod5 (Pod do Kubernetes)

Rótulos:
  cluster_name
  namespace_name
  pod_name
  project_id
  location2

Somente Logging
gke_cluster (GKE_cluster)

Rótulos:
  cluster_name
  project_id
  location

Monitoring e Logging:
k8s_cluster5 (Cluster do Kubernetes)

Rótulos:
  cluster_name
  project_id
  location

Mudanças nos nomes de métricas

A tabela a seguir mostra algumas amostras dos diferentes nomes de métricas. Mude cada uso de uma métrica com nome iniciado por container.googleapis.com/ para uma nova métrica com nome iniciado por kubernetes.io/.

Os novos nomes de métricas podem ser diferentes de outras maneiras, além do novo prefixo. Procure as novas métricas em kubernetes.io .

Mudanças nos nomes de métricas
Métricas do Stackdriver legado (antigo) Métricas do Stackdriver Kubernetes Engine (novo)
Métricas legadas do GKE
container.googleapis.com/

Exemplos:
  .../container/cpu/utilization
  .../container/uptime
  .../container/memory/bytes_total
Métricas do Stackdriver Kubernetes
kubernetes.io/

Exemplos:
  .../container/cpu/request_utilization
  .../container/uptime
  .../node/memory/total_bytes
  .../node/cpu/total_cores

Mudanças de grupo de recursos

Se você definir seus próprios grupos de recursos e usar qualquer um dos tipos de recursos do Stackdriver legado mostrados na tabela Mudanças de tipo de recurso anterior ou qualquer métrica do Stackdriver legado mostrada na tabela Mudanças nos nomes de métrica anterior, mude esses tipos e métricas para as opções correspondentes do Stackdriver Kubernetes Engine Monitoring. Se o grupo de recursos incluir gráficos personalizados, talvez seja necessário mudá-los.

Mudanças em gráficos e painéis personalizados

Se você definir seus próprios gráficos e painéis personalizados e usar qualquer um dos tipos de recursos do Stackdriver legado mostrados na tabela Mudanças de tipo de recurso anterior ou qualquer métrica do Stackdriver legado mostrada na tabela Mudanças nos nomes de métrica anterior, mude esses tipos e métricas para as opções correspondentes do Stackdriver Kubernetes Engine Monitoring.

Para seus gráficos e painéis personalizados, consiga ajuda visualizando o painel de status da migração do GKE:

  1. No Console do Cloud, selecione o projeto do Google Cloud que contém um cluster do GKE para atualizar para o Stackdriver Kubernetes Engine Monitoring:

    Acessar o Console do Cloud

  2. Selecione Monitoring.

  3. Para visualizar o status da migração, faça o seguinte:

    • Clique em Settings se essa opção estiver listada no painel de navegação. Em seguida, selecione a guia Kubernetes Migration Status.

    • Se ela não estiver listada, na barra de ferramentas, clique em Menu , selecione Workspace Settings e selecione "**Kubernetes Migration Status".

Mudanças na política de alertas e tempo de atividade

Se você definir políticas de alertas ou verificações de tempo de atividade e usar qualquer um dos tipos de recursos do Stackdriver legado mostrados na tabela Mudanças de tipo de recurso anterior ou qualquer métrica do Stackdriver legado mostrada na tabela Mudanças nos nomes de métrica anterior, mude esses tipos e métricas para as opções correspondentes do Stackdriver Kubernetes Engine Monitoring.

O upgrade das políticas de alertas e das verificações de tempo de atividade podem ser as mudanças mais difíceis de serem realizadas e verificadas. Uma pergunta a ser considerada é: quando fazer essas mudanças? Você muda a configuração da política antes de fazer upgrade do cluster ou depois? As políticas antigas falham depois que você atualiza o cluster e as novas falham antes de você atualizá-lo.

Em vez de mudar políticas, considere deixar as políticas atuais inalteradas e criar novas com as mudanças atualizadas. Isso pode facilitar o acompanhamento das políticas que você espera que falhem e das que você não espera em momentos diferentes durante a atualização.

Aqui estão algumas outras dicas:

  • Examine suas políticas e estime por quanto tempo seu cluster atualizado precisará ser executado antes de acumular dados suficientes para funcionar no estado estável.

  • Tenha uma ideia do desempenho das políticas ou métricas individuais antes de atualizar. Dessa maneira, é possível comparar esse comportamento com o comportamento pós-atualização.

Como gerar registros de consultas

Se você usar consultas para encontrar e filtrar os registros no Stackdriver Logging e utilizar qualquer um dos tipos de recursos do Stackdriver legado mostrados na tabela Mudanças de tipo de recurso anterior, mude esses tipos para os tipos correspondentes do Stackdriver Kubernetes Engine Monitoring.

Métricas com base em registros

Se você definir suas próprias métricas com base em registros e usar tipos de recursos ou métricas do Stackdriver legado mostrados nas tabelas Mudanças nos nomes de métrica ou Mudanças de tipo de recurso, mude essas métricas e tipos de recurso para as opções correspondentes do Stackdriver Kubernetes Engine Monitoring.

Exportações e exclusões de registros

Se você exportar ou excluir algum dos registros e os filtros de exportação ou exclusão usarem os tipos de recursos do Stackdriver legado mostrados na tabela Mudanças de tipo de recurso anterior, mude esses filtros para usar os tipos de recursos correspondentes do Stackdriver Kubernetes Engine Monitoring.

Mudanças no conteúdo de entradas de registro

Quando você atualiza para o Stackdriver Kubernetes Engine Monitoring, talvez descubra que determinadas informações nas entradas de registro foram movidas para campos com nomes diferentes. Essas informações podem ser exibidas em consultas de registros usadas em métricas baseadas em registros, coletores de registros e exclusões de registros.

A tabela a seguir, Alterações na entrada de registro, lista os novos campos e rótulos. Aqui está um breve resumo:

  • O campo logName pode ser mudado. As entradas de registro do Stackdriver Kubernetes Engine Monitoring usam stdout ou stderr nos nomes de registro, enquanto o Stackdriver legado usava uma variedade maior de nomes, incluindo o nome de contêiner. O nome de contêiner ainda está disponível como um rótulo de recurso.
  • Verifique o campo labels nas entradas de registro. Esse campo pode conter informações que anteriormente estavam nos campos metadata de entrada de registro.
  • Verifique o campo resource.labels nas entradas de registro. Os novos tipos de recursos têm valores de rótulo a mais.
Mudanças nas entradas de registro
Entradas de registro do Stackdriver legado (antigo) Entradas de registro do Stackdriver Kubernetes Engine Monitoring (novo)
Notas de rodapé da tabela:
1 Os rótulos de recurso identificam recursos específicos que geram métricas, como clusters e nós específicos.
2 O campo labels aparece em novas entradas de registro que fazem parte do Stackdriver Kubernetes Engine Monitoring e, às vezes, em algumas entradas de registro do Stackdriver legado. No Stackdriver Kubernetes Engine Monitoring, esse campo é usado para reter algumas informações que anteriormente estavam nos campo metadata de entrada de registro.
Recursos de entrada de registro
resource.labels (Rótulos de recurso1)
Recursos de entrada de registro
resource.labels (Rótulos de recurso1)
Metadados de entrada de registro
labels (Rótulos de entrada de registro2)

Rótulos (Exemplos)
  compute.googleapis.com/resource_name:
    "fluentd-gcp-v3.2.0-d4d9p"

  container.googleapis.com/namespace_name:
    "kube-system"

  container.googleapis.com/pod_name:
    "fluentd-gcp-scaler-8b674f786-d4pq2"

  container.googleapis.com/stream:
    "stdout"
Metadados de entrada de registro
labels

Mudanças em locais de registro

No Stackdriver Logging, os registros são armazenados com o tipo de recurso que os gerou. Como esses tipos foram alterados no Stackdriver Kubernetes Engine Monitoring, procure seus registros nos novos tipos de recursos, como Kubernetes Container, e não nos tipos do Stackdriver legado, como GKE Container.

A seguir

  • Para saber mais sobre o novo painel do Stackdriver Kubernetes Engine Monitoring, consulte Como observar o sistema.