이 섹션에서는 외부 부하 분산기를 사용하여 Google Distributed Cloud(에어 갭 적용형)에서 인그레스 트래픽 가상 머신을 여는 방법을 설명합니다.
부하 분산기 서비스를 사용하여 VM 노출
인그레스 트래픽은 특정 포트의 트래픽을 VM으로 전달하는 LoadBalancer 유형의 서비스를 통해 GDC 클러스터의 Linux VM으로 이동합니다.
Linux VM의 인그레스 트래픽을 사용 설정하려면 VM을 만드는 데 사용하는 YAML 파일에 ingress.virtualmachines.gpc.gke.io: true 라벨을 추가합니다. 그러면 VM 인스턴스가 생성될 때 인그레스 트래픽을 위한 LoadBalancer 서비스가 생성됩니다. 서비스는 VM_NAME-default-ingress라는 이름으로 VM과 동일한 네임스페이스에 생성됩니다.
수신 트래픽을 위한 VM 포트 열기
수신 트래픽을 수락하려면 VM에서 포트를 명시적으로 열어야 합니다. 예를 들면 다음과 같습니다.
kubectl patch svc VM_NAME-default-ingress -n NAMESPACE_NAME -p \
'{"spec":{"ports":[{"protocol":"TCP","port":PORT, "name": "NAME"}]}}'
다음 자리표시자를 바꿉니다.
- VM_NAME을 VM 이름으로 바꿉니다.
- NAMESPACE_NAME을 서비스 네임스페이스로 바꿉니다.
- PORT를 VM에서 열려는 포트로 바꿉니다.
- NAME을 포트 이름으로 바꿉니다.
이그레스
프로젝트의 VM 워크로드는 외부 네트워크에 연결하거나 다른 Fleet의 서비스에 노출될 수 있습니다.
이그레스 사용 설정 (EgressNAT 사용)
미리 정의된 IP 주소를 사용하여 이그레스 트래픽에 대해 영구적이고 결정적인 라우팅을 위한 이그레스 NAT 게이트웨이를 사용 설정합니다. 이렇게 하면 더 구체적인 방화벽 및 라우팅 규칙을 만들 수 있습니다.
NetworkPolicy
프로젝트 수준에서 컨테이너 워크로드의 네트워크 정책을 설정할 수 있습니다. 프로젝트는 여러 기본 베어메탈 사용자 클러스터에 걸쳐 있을 수 있습니다.
SSH를 사용하여 Linux VM에 연결
SSH를 사용하여 Linux VM에 연결하려면 부하 분산기 서비스의 IP 주소를 사용합니다. SSH 포트 22는 VM에 대해 기본적으로 열려 있습니다.
부하 분산기 서비스 IP 주소 가져오기
다음 예시 출력은 IP 주소가 10.200.0.102인 경우 부하 분산기 서비스가 TCP 포트 22에서 SSH 트래픽을 전달할 준비가 되었음을 보여줍니다.
kubectl get services VM_NAME-default-ingress -n NAMESPACE_NAME
TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
LoadBalancer 10.106.6.18 10.200.0.102 22:32443/TCP 11s
VM에 연결
VM에 연결하려면 부하 분산기 서비스의 IP 주소와 SSH 키를 사용합니다. 예를 들어 부트스트랩 머신에서 연결할 수 있습니다.
ssh -i /path/to/KEY_NAME ubuntu@10.200.0.102
VM 간 파일 전송
Distributed Cloud VM 인스턴스에 파일을 전송할 때 워크스테이션 OS와 대상 VM 인스턴스 OS에 따라 여러 가지 옵션을 사용할 수 있습니다.
Linux VM으로 파일 전송
VM에 SSH 연결을 설정하고 이 연결을 사용하여 VM으로 파일을 전송합니다.
VM에서 파일 전송
VM의 파일 및 디렉터리를 로컬 워크스테이션에 복사할 수도 있습니다.
다음 명령어 (미정)를 사용하여 VM(소스)의 디렉터리를 로컬 워크스테이션 (대상)에 반복적으로 복사합니다.