Configurar destinos de sondagem externos

Neste documento, explicamos como configurar destinos externos para testes no Google Distributed Cloud (GDC) com isolamento físico. O sistema descobre e monitora esses destinos lendo um ConfigMap específico do Kubernetes.

Antes de começar

Para aplicar um ConfigMap ao namespace gpc-system, você precisa ter acesso ao cluster e permissões para criar ou modificar ConfigMaps nesse namespace. Você também precisa do caminho para o arquivo kubeconfig do cluster do servidor da API Management. Os testes de destino externo só podem ser configurados em clusters root-admin ou org-admin.

Entender os detalhes do ConfigMap

O prober procura um ConfigMap com as seguintes características:

  • Nome:pnet-external-probe-targets-config
  • Namespace:gpc-system
  • Chave de dados:o ConfigMap precisa conter uma chave chamada targets.yaml no campo data. O valor associado a essa chave precisa ser uma string YAML que define os destinos da sondagem.

Entender a estrutura targets.yaml

O conteúdo targets.yaml precisa ser uma lista de objetos YAML. Cada objeto representa um único destino de teste externo e segue esta estrutura:

- name: <unique-probe-name>
  spec:
    target: <hostname-or-ip>
    probeType: <TCP or ICMP>
    port: <port-number> # Required for TCP, ignored for ICMP
    interval: <duration> # e.g., "10s", "1m"
    timeout: <duration>  # Optional, e.g., "5s". Defaults to 5s if not set.

Confira um detalhamento dos campos:

  • name (string) : um identificador exclusivo para esse destino de teste específico.
  • spec: **`spec`** : define os parâmetros de teste:
    • target (string) : o nome do host ou o endereço IP do destino externo a ser testado.
    • probeType (string) : o tipo de sondagem a ser realizado. Os valores aceitos são:
      • TCP: realiza uma tentativa de conexão TCP com o target e a port especificados.
      • ICMP: envia uma solicitação de eco ICMP (ping) para o target.
    • port (int32) : o número da porta a ser usada para testes TCP. Esse campo é obrigatório quando probeType é TCP e é ignorado para testes ICMP.
    • interval (string) : a frequência com que a sondagem precisa ser executada. Esse precisa ser uma string válida do Kubernetes metav1.Duration (por exemplo, "5s", "1m30s").
    • timeout (string, opcional) : o tempo máximo de espera para a conclusão de uma única tentativa de sondagem. Essa também é uma string metav1.Duration. Se não for especificado, um tempo limite padrão de 5s será usado.

Criar e aplicar o ConfigMap

Para criar ou atualizar o ConfigMap, siga estas etapas:

  1. Crie um arquivo YAML chamado external-probe-configmap.yaml. O exemplo a seguir define três destinos de sondagem:

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: pnet-external-probe-targets-config
      namespace: gpc-system
    data:
      targets.yaml: |
        - name: "example-tcp-server"
          spec:
            target: "192.0.2.1"
            probeType: "TCP"
            port: 80
            interval: "10s"
            timeout: "3s"
        - name: "example-icmp-host"
          spec:
            target: "8.8.8.8"
            probeType: "ICMP"
            interval: "30s"
        - name: "another-tcp-service"
          spec:
            target: "my-service.example.com"
            probeType: "TCP"
            port: 443
            interval: "1m"
            # Using default timeout of 5s
    
  2. Aplique o ConfigMap ao cluster:

    kubectl apply -f external-probe-configmap.yaml -n gpc-system --kubeconfig=MANAGEMENT_API_SERVER
    

    Substitua MANAGEMENT_API_SERVER pelo caminho para o arquivo kubeconfig do servidor da API Management.

O prober detecta automaticamente as mudanças nesse ConfigMap e inicia, interrompe ou atualiza os processos de sondagem com base nos destinos definidos.