Configurar destinos de sondagem externos

Neste documento, explicamos como configurar destinos externos para sondagem 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. As sondagens de destino externas só podem ser configuradas em clusters de administrador raiz ou administrador da organização.

Como entender os detalhes do ConfigMap

O verificador 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.

Noções básicas sobre a estrutura targets.yaml

O conteúdo targets.yaml precisa ser uma lista de objetos YAML. Cada objeto representa um único destino de sondagem externa 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 sondagem específico.
  • spec:define os parâmetros de sondagem:
    • target (string): o nome do host ou o endereço IP do destino externo a ser sondado.
    • probeType (string): o tipo de sondagem a ser realizada. Os valores aceitos são:
      • TCP: tenta fazer uma conexão TCP com o target e o 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 sondagens TCP. Esse campo é obrigatório quando probeType é TCP e é ignorado para sondagens ICMP.
    • interval (string): a frequência com que a sondagem precisa ser executada. Precisa ser uma string metav1.Duration válida do Kubernetes (por exemplo, "5s", "1m30s").
    • timeout (string, opcional): o tempo máximo de espera para a conclusão de uma única tentativa de sondagem. Isso 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 do 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.