Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Central de ajuda/ Cloud Container Engine/ Guia de usuário/ Complementos/ Exportador de métricas de rede do CCE
Atualizado em 2024-11-28 GMT+08:00

Exportador de métricas de rede do CCE

Introdução

dolphin é um complemento para monitorar e gerenciar o tráfego de rede de contêineres. golfinho da versão atual coleta estatísticas de tráfego de Kata e contêineres comuns em clusters do CCE Turbo.

Este complemento recolhe quantos pacotes e bytes de IPv4 são recebidos e enviados (incluindo aqueles enviados para a rede pública). PodSelectors podem ser usados para selecionar back-ends de monitoramento para suportar várias tarefas de monitoramento e métricas de monitoramento opcionais. Você também pode obter informações de rótulo de vagens. As informações de monitoramento foram adaptadas ao formato de Prometheus. Você pode chamar a API do Prometheus para visualizar os dados de monitoramento.

Restrições

  • Este complemento pode ser instalado somente em clusters do CCE Turbo da versão 1.19 ou posterior. Seus pods podem ser implementados apenas em nós que executam o EulerOS e não podem ser implementados em nós Arm. \
  • Esse complemento pode ser instalado em nós que usam o mecanismo de contêiner ou Docker. Em nós em contêineres, ele pode rastrear atualizações de pods em tempo real. Nos nós do Docker, ele pode consultar atualizações de pods no modo de polling.
  • Somente as estatísticas de tráfego de contêineres seguros (Kata como o tempo de execução do contêiner) e de contêineres comuns (runC como o tempo de execução do contêiner) em um cluster do CCE Turbo podem ser coletadas.
  • Depois que o complemento é instalado, o tráfego não é monitorado por padrão. Crie um CR para configurar uma tarefa de monitoramento para monitoramento de tráfego.
  • Verifique se há recursos suficientes no nó para instalar o complemento.
  • A origem dos rótulos de monitoramento e dos rótulos de usuário já deve estar disponível antes que um pod seja criado.

Instalar o complemento

  1. Efetue logon no console do CCE e clique no nome do cluster do Turbo CCE para acessar o cluster. Clique em Add-ons no painel de navegação, localize CCE Network Metrics Exporter à direita e clique em Install.
  2. Na página Install Add-on, visualize a configuração do complemento.

    Nenhum parâmetro pode ser configurado para o complemento atual.

  3. Clique em Install.

    Depois que o complemento for instalado, selecione o cluster e clique em Add-ons no painel de navegação. Na página exibida, visualize o complemento na área Add-ons Installed.

Componentes

Tabela 1 Componente de dolphin

Componente

Descrição

Tipo de recurso

dolphin

Usado para monitorar o tráfego de rede de contêiner de clusters do CCE Turbo

DaemonSet

Entrega de uma tarefa de monitoramento

Você pode entregar uma tarefa de monitoramento criando um CR. Atualmente, um CR pode ser criado chamando uma API ou usando o comando kubectl apply depois de fazer logon em um nó de trabalho. Em versões posteriores, um CR pode ser criado no console. Um CR representa uma tarefa de monitoramento e fornece parâmetros opcionais, como selector, podLabel e ip4Tx. Para obter detalhes, consulte o modelo de criação de CR abaixo.

apiVersion: crd.dolphin.io/v1
kind: MonitorPolicy
metadata:
    name: example-task            # Monitoring task name.
    namespace: kube-system        # The value must be kube-system. This field is mandatory.
spec:
    selector:                     # (Optional) Backend monitored by the dolphin add-on, for example, labelSelector. By default, all containers on the node are monitored.
    matchLabels:
      app: nginx
    matchExpressions:
      - key: app
        operator: In
        values:
          - nginx
  podLabel: [app]               # (Optional) Pod label.
  ip4Tx:                        # (Optional) Indicates whether to collect statistics about the number of sent IPv4 packets and the number of sent IPv4 bytes. This function is disabled by default.
    enable: true
    ip4Rx:                        # (Optional) Indicates whether to collect statistics about the number of received IPv4 packets and the number of received IPv4 bytes. This function is disabled by default.
    enable: true
    ip4TxInternet:                # (Optional) Indicates whether to collect statistics about the number of sent IPv4 packets and the number of sent IPv4  bytes. This function is disabled by default.
    enable: true

PodLabel: você pode inserir os rótulos de vários pods e separá-los com vírgulas (,), por exemplo, [app, version].

Os rótulos devem obedecer às seguintes regras. A expressão regular correspondente é (^[a-zA-Z_]$)|(^([a-zA-Z][a-zA-Z0-9_]|_[a-zA-Z0-9])([a-zA-Z0-9_]){0,254}$).

  • Um máximo de cinco rótulos podem ser inseridos. Cada rótulo contém no máximo 256 caracteres.
  • O valor não pode começar com um dígito ou sublinhado duplo (_).
  • O formato de uma única etiqueta deve estar em conformidade com A-Za-z_0-9.
Exemplo 1
apiVersion: crd.dolphin.io/v1
kind: MonitorPolicy
metadata:
  name: example-task  
  namespace: kube-system        
spec:
  podLabel: [app]
  ip4Tx:
    enable: true

No exemplo anterior, o nome da tarefa de monitoramento é example-task, que monitora todos os pods em um nó e gera o número de pacotes de IPv4 enviados e o número de bytes enviados. Se o contêiner monitorado contiver o rótulo app, as informações de valor-chave do rótulo correspondente serão transportadas nas métricas de monitoramento. Caso contrário, o valor do rótulo correspondente é not found.

Exemplo 2
apiVersion: crd.dolphin.io/v1
kind: MonitorPolicy
metadata:
  name: example-task
  namespace: kube-system
spec:
  selector:
    matchLabels:
      app: nginx
  podLabel: [test, app]
  ip4Tx:
    enable: true
  ip4Rx:
    enable: true
  ip4TxInternet:      
    enable: true

No exemplo anterior, o nome da tarefa de monitoramento é example-task, que monitora todos os pods que atendem ao labelselector com app=nginx em um nó e gera as seis métricas. Se o contêiner monitorado contiver rótulos test e app, as informações de valor-chave do rótulo correspondente serão transportadas nas métricas de monitoramento. Caso contrário, o valor do rótulo correspondente é not found.

Você pode criar, modificar e excluir tarefas de monitoramento no formato anterior. Atualmente, é possível criar no máximo 10 tarefas de monitoramento. Quando várias tarefas de monitoramento correspondem ao mesmo back-end de monitoramento, cada back-end de monitoramento gera a métrica de monitoramento específica para o número de tarefas de monitoramento.

  • Se você modificar ou excluir uma tarefa de monitoramento, os dados de monitoramento coletados pela tarefa de monitoramento serão perdidos. Portanto, tenha cuidado ao realizar esta operação.
  • Depois que o complemento é desinstalado, o CR da tarefa de monitoramento é removido junto com o complemento.

Verificar estatísticas de tráfego

Os dados de monitoramento coletados por este complemento são exportados no formato exportador de Prometheus, que pode ser obtido de uma das seguintes maneiras:

  • Instale o complemento Prometheus, que se interconecta automaticamente com o complemento dolphin e periodicamente coleta informações de monitoramento.
  • Acesse diretamente a porta de serviço 10001 fornecida pelo complemento dolphin, por exemplo, http://{POD_IP}:10001/metrics.

Observe que, se você acessar a porta de serviço do dolphin em um nó, permita o acesso do grupo de segurança do nó e do pod.

Você pode instalar o complemento Prometheus para visualizar as informações de monitoramento. Para obter detalhes sobre como usar o complemento Prometheus, consulte Monitoramento de métricas personalizadas usando o Prometheus.

Tabela 2 Métricas de monitoramento suportadas

Métrica

Parâmetro

Número de pacotes IPv4 enviados para a rede pública

ip4_send_pkt_internet

Número de bytes IPv4 enviados para a rede pública

ip4_send_byte_internet

Número de pacotes IPv4 recebidos

ip4_rcv_pkt

Número de bytes IPv4 recebidos

ip4_rcv_byte

Número de pacotes IPv4 enviados

ip4_send_pkt

Número de bytes IPv4 enviados

ip4_send_byte

  • Exemplo 1 (número de pacotes IPv4 enviados para a rede pública):
    dolphin_ip4_send_pkt_internet{app="nginx",pod="default/nginx-66c9c65dbf-zjg24",task="kube-system/example-task "} 241

    No exemplo anterior, o namespace do pod é default, o nome do pod é nginx-66c9c65dbf-zjg24, o rótulo é app e o valor é nginx. Essa métrica é criada monitorando a tarefa example-task, e o número de pacotes IPv4 enviados pelo pod para a rede pública é 241.

  • Exemplo 2 (número de bytes IPv4 enviados para a rede pública):
    dolphin_ip4_send_byte_internet{app="nginx",pod="default/nginx-66c9c65dbf-zjg24",task="kube-system/example-task" } 23618

    No exemplo anterior, o namespace do pod é default, o nome do pod é nginx-66c9c65dbf-zjg24, o rótulo é app e o valor é nginx. Essa métrica é criada pelo monitoramento da tarefa example-task, e o número de bytes IPv4 enviados pelo pod para a rede pública é 23618.

  • Exemplo 3 (número de pacotes IPv4 enviados):
    dolphin_ip4_send_pkt{app="nginx",pod="default/nginx-66c9c65dbf-zjg24",task="kube-system/example-task "} 379

    No exemplo anterior, o namespace do pod é default, o nome do pod é nginx-66c9c65dbf-zjg24, o rótulo é app e o valor é nginx. Essa métrica é criada monitorando a tarefa example-task, e o número de pacotes IPv4 enviados pelo pod é 379.

  • Exemplo 4 (número de bytes IPv4 enviados):
    dolphin_ip4_send_byte{app="nginx",pod="default/nginx-66c9c65dbf-zjg24",task="kube-system/example-task "} 33129

    No exemplo anterior, o namespace do pod é default, o nome do pod é nginx-66c9c65dbf-zjg24, o rótulo é app e o valor é nginx. Essa métrica é criada pelo monitoramento da tarefa example-task, e o número de bytes IPv4 enviados pelo pod é 33129.

  • Exemplo 5 (número de pacotes IPv4 recebidos):
    dolphin_ip4_rcv_pkt{app="nginx",pod="default/nginx-66c9c65dbf-zjg24",task="kube-system/example-task "} 464

    No exemplo anterior, o namespace do pod é default, o nome do pod é nginx-66c9c65dbf-zjg24, o rótulo é app e o valor é nginx. Esta métrica é criada monitorando a tarefa example-task, e o número de pacotes do IPv4 recebidos pelo pod é 464.

  • Exemplo 6 (número de bytes IPv4 recebidos):
    dolphin_ip4_rcv_byte{app="nginx",pod="default/nginx-66c9c65dbf-zjg24",task="kube-system/example-task "} 34654

    No exemplo anterior, o namespace do pod é default, o nome do pod é nginx-66c9c65dbf-zjg24, o rótulo é app e o valor é nginx. Essa métrica é criada monitorando a tarefa example-task, e o número de bytes IPv4 recebidos pelo pod é 34654.

Se o contêiner não contiver o rótulo especificado, o valor do rótulo no corpo da resposta será not found. O formato é o seguinte:

dolphin_ip4_send_byte_internet{test="not found", pod="default/nginx-66c9c65dbf-zjg24",task="default" } 23618