Configure alvos de sondagem externos

Este documento explica como configurar destinos externos para a deteção em Google Distributed Cloud (GDC) air-gapped. O sistema descobre e monitoriza estes destinos através da leitura de um ConfigMap do Kubernetes específico.

Antes de começar

Para aplicar um ConfigMap ao espaço de nomes gpc-system, tem de ter acesso ao cluster e autorizações para criar ou modificar ConfigMaps nesse espaço de nomes. Também precisa do caminho para o ficheiro kubeconfig do cluster do servidor da API de gestão. As deteções de destinos externos só podem ser configuradas em clusters root-admin ou org-admin.

Compreender os detalhes do ConfigMap

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

  • Nome: pnet-external-probe-targets-config
  • Espaço de nomes: gpc-system
  • Chave de dados: o ConfigMap tem de conter uma chave denominada targets.yaml no respetivo campo data. O valor associado a esta chave tem de ser uma string YAML que define os destinos da deteção.

Compreender a estrutura de targets.yaml

O conteúdo de targets.yaml tem de ser uma lista de objetos YAML. Cada objeto representa um único destino de deteção 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.

Segue-se uma análise detalhada dos campos:

  • name (string): um identificador único para este destino de deteção específico.
  • spec: define os parâmetros de deteção:
    • target (string): o nome de anfitrião ou o endereço IP do destino externo a detetar.
    • probeType (string): o tipo de deteção a realizar. Os valores suportados são:
      • TCP: tenta estabelecer uma ligação TCP ao target e à port especificados.
      • ICMP: envia um pedido de eco ICMP (ping) para o target.
    • port (int32): o número da porta a usar para deteções TCP. Este campo é obrigatório quando probeType é TCP e é ignorado para deteções ICMP.
    • interval (string): a frequência com que a deteção deve ser executada. Tem de ser uma string metav1.Duration do Kubernetes válida (por exemplo, "5s", "1m30s").
    • timeout (string, opcional): o tempo máximo de espera pela conclusão de uma única tentativa de deteção. Também é uma string metav1.Duration. Se não for especificado, é usado um tempo limite predefinido de 5s.

Crie e aplique o ConfigMap

Para criar ou atualizar o ConfigMap, siga estes passos:

  1. Crie um ficheiro YAML denominado external-probe-configmap.yaml. O exemplo seguinte define três destinos de deteção:

    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 seu cluster:

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

    Substitua MANAGEMENT_API_SERVER pelo caminho para o ficheiro kubeconfig do servidor da API de gestão.

O prober deteta automaticamente as alterações a este ConfigMap e inicia, para ou atualiza os processos de deteção com base nos destinos definidos.