외부 프로브 타겟 구성

이 문서에서는 Google Distributed Cloud (GDC) 오프라인에서 프로브를 위한 외부 타겟을 구성하는 방법을 설명합니다. 시스템은 특정 Kubernetes ConfigMap을 읽어 이러한 타겟을 검색하고 모니터링합니다.

시작하기 전에

gpc-system 네임스페이스에 ConfigMap을 적용하려면 클러스터에 액세스할 수 있어야 하며 해당 네임스페이스에서 ConfigMap을 만들거나 수정할 수 있는 권한이 있어야 합니다. 관리 API 서버 클러스터의 kubeconfig 파일 경로도 필요합니다. 외부 타겟 프로브는 루트 관리자 또는 조직 관리자 클러스터에서만 구성할 수 있습니다.

ConfigMap 세부정보 이해

프로버는 다음과 같은 특성이 있는 ConfigMap을 찾습니다.

  • 이름: pnet-external-probe-targets-config
  • 네임스페이스: gpc-system
  • 데이터 키: ConfigMap의 data 필드 내에 targets.yaml라는 키가 포함되어야 합니다. 이 키와 연결된 값은 프로브 타겟을 정의하는 YAML 문자열이어야 합니다.

targets.yaml 구조 이해

targets.yaml 콘텐츠는 객체의 YAML 목록이어야 합니다. 각 객체는 단일 외부 프로브 타겟을 나타내며 다음 구조를 따릅니다.

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

필드는 다음과 같이 분류됩니다.

  • name (문자열): 이 특정 프로브 타겟의 고유 식별자입니다.
  • spec: 프로브 매개변수를 정의합니다.
    • target (문자열): 프로브할 외부 타겟의 호스트 이름 또는 IP 주소입니다.
    • probeType (문자열): 실행할 프로브의 유형입니다. 지원되는 값은 다음과 같습니다.
      • TCP: 지정된 targetport에 TCP 연결을 시도합니다.
      • ICMP: target에 ICMP 에코 요청 (핑)을 전송합니다.
    • port (int32): TCP 프로브에 사용할 포트 번호입니다. 이 필드는 probeTypeTCP인 경우 필수이며 ICMP 프로브에서는 무시됩니다.
    • interval (문자열): 프로브가 실행되어야 하는 빈도입니다. 유효한 Kubernetes metav1.Duration 문자열이어야 합니다 (예: "5s", "1m30s").
    • timeout (문자열, 선택사항): 단일 프로브 시도가 완료될 때까지 기다리는 최대 시간입니다. 이것도 metav1.Duration 문자열입니다. 지정하지 않으면 기본 제한 시간인 5s이 사용됩니다.

ConfigMap 만들기 및 적용

ConfigMap을 만들거나 업데이트하려면 다음 단계를 따르세요.

  1. external-probe-configmap.yaml이라는 YAML 파일을 만듭니다. 다음 예에서는 세 개의 프로브 타겟을 정의합니다.

    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. 클러스터에 ConfigMap을 적용합니다.

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

    MANAGEMENT_API_SERVER를 관리 API 서버의 kubeconfig 파일 경로로 바꿉니다.

프로버는 이 ConfigMap의 변경사항을 자동으로 감지하고 정의된 타겟에 따라 프로브 프로세스를 시작, 중지 또는 업데이트합니다.