워크로드의 아웃바운드 트래픽 관리

이 페이지에서는 워크로드가 조직 외부로 나갈 수 있도록 프로젝트의 가상 머신 (VM) 또는 포드에서 취해야 하는 이그레스 연결 작업을 설명합니다. 이 절차에서는 아웃바운드 트래픽을 명시적으로 사용 설정하고 워크로드가 조직 외부와 통신할 수 있도록 배포에 필수 라벨을 추가하는 방법을 보여줍니다.

기본적으로 Google Distributed Cloud (GDC)는 조직 외부로 나가는 프로젝트의 워크로드를 에어 갭으로 차단합니다. 플랫폼 관리자 (PA)가 프로젝트의 데이터 무단 반출 보호를 사용 중지한 경우 워크로드가 조직을 종료할 수 있습니다. 데이터 유출 방지 기능을 사용 중지하는 것 외에도 애플리케이션 운영자 (AO)는 포드의 워크로드에 라벨 egress.networking.gke.io/enabled: true를 추가하여 해당 포드의 이그레스 연결을 사용 설정해야 합니다. 프로젝트에 잘 알려진 IP 주소를 할당하고 사용하면 조직에서 나가는 트래픽에 소스 네트워크 주소 변환 (NAT)이 실행됩니다.

포드 또는 VM의 워크로드에서 이그레스 연결을 관리할 수 있습니다.

포드의 워크로드에서 아웃바운드 트래픽 관리

이그레스 연결을 위해 포드에서 워크로드를 구성하려면 먼저 프로젝트에 데이터 유출 방지가 사용 중지되어 있는지 확인해야 합니다. 그런 다음 egress.networking.gke.io/enabled: true 라벨이 포드에 추가되었는지 확인합니다. Deployment 또는 Daemonset 구조와 같은 상위 수준 구조를 사용하여 포드 집합을 관리하는 경우 해당 사양에서 포드 라벨을 구성해야 합니다.

다음 예에서는 매니페스트 파일에서 Deployment를 만드는 방법을 보여줍니다. 샘플 파일의 labels 필드에는 프로젝트의 아웃바운드 트래픽을 명시적으로 사용 설정하는 egress.networking.gke.io/enabled: true 값이 포함되어 있습니다. 이 라벨은 배포의 각 포드에 추가되며 포드의 워크로드가 조직을 종료할 수 있도록 합니다.

kubectl --kubeconfig USER_CLUSTER_KUBECONFIG \
    apply -f - <<EOF
apiVersion: apps/v1
kind: Deployment
metadata:
  name: DEPLOYMENT_NAME
spec:
  replicas: NUMBER_OF_REPLICAS
  selector:
    matchLabels:
      run: APP_NAME
  template:
    metadata:
      labels: # The labels given to each pod in the deployment, which are used
              # to manage all pods in the deployment.
        run: APP_NAME
        egress.networking.gke.io/enabled: true
    spec: # The pod specification, which defines how each pod runs in the deployment.
      containers:
      - name: CONTAINER_NAME
        image: CONTAINER_IMAGE
EOF

다음을 바꿉니다.

  • USER_CLUSTER_KUBECONFIG: 컨테이너 워크로드를 배포할 사용자 클러스터의 kubeconfig 파일입니다.

  • DEPLOYMENT_NAME: 컨테이너 워크로드를 배포할 사용자 클러스터의 kubeconfig 파일입니다.

  • APP_NAME: 배포 내에서 실행할 애플리케이션의 이름입니다.

  • NUMBER_OF_REPLICAS: 배포에서 관리하는 복제된 Pod 객체 수입니다.

  • CONTAINER_NAME: 컨테이너의 이름입니다.

  • CONTAINER_IMAGE: 컨테이너 이미지의 이름입니다. REGISTRY_PATH/hello-app:1.0와 같은 컨테이너 레지스트리 경로와 이미지 버전을 포함해야 합니다.

예를 들면 다음과 같습니다.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  replicas: 3
  selector:
    matchLabels:
      run: my-app
  template:
    metadata:
      labels:
        run: my-app
        egress.networking.gke.io/enabled: true
    spec:
      containers:
      - name: hello-app
        image: REGISTRY_PATH/hello-app:1.0

VM의 워크로드에서 아웃바운드 트래픽 관리

이그레스 연결을 위해 VM에서 워크로드를 구성하려면 VM 구성에 GDC 콘솔을 사용하거나 VirtualMachineExternalAccess 리소스를 만들면 됩니다. 데이터 전송을 위해 외부 액세스 권한이 있는 VM을 사용 설정하는 방법은 VM에 연결 섹션의 외부 액세스 사용 설정을 참고하세요.