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.yamlno respetivo campodata. 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 aotargete àportespecificados.ICMP: envia um pedido de eco ICMP (ping) para otarget.
port(int32): o número da porta a usar para deteções TCP. Este campo é obrigatório quandoprobeTypeéTCPe é ignorado para deteçõesICMP.interval(string): a frequência com que a deteção deve ser executada. Tem de ser uma stringmetav1.Durationdo 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 stringmetav1.Duration. Se não for especificado, é usado um tempo limite predefinido de5s.
Crie e aplique o ConfigMap
Para criar ou atualizar o ConfigMap, siga estes passos:
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 5sAplique o ConfigMap ao seu cluster:
kubectl apply -f external-probe-configmap.yaml -n gpc-system --kubeconfig=MANAGEMENT_API_SERVERSubstitua
MANAGEMENT_API_SERVERpelo 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.