GKE의 아웃 바운드 연결을위한 안정적인 퍼블릭 IP 또는 IP 범위


21

Google Kubernetes Engine을 사용하여 주문형 포드를 실행합니다. 각 포드는 노드 포트 서비스를 사용하여 인터넷에 공개적으로 노출됩니다.

GKE에서 아웃 바운드 연결을위한 단일 IP 또는 IP 범위를 가져 와서 타사 API에 허용하여 화이트리스트에 추가하는 방법을 찾고 있습니다.

노드가 자동 확장되거나 업그레이드 할 때 GKE 노드 IP를 관리 할 수 ​​없습니다. 일관된 아웃 바운드 IP를 유지하는 방법이 필요합니다.

Kubernetes 노드에 간단한 NAT 게이트웨이를 사용하여 시도했지만 ( 여기 의 예제 사용 ) NAT 게이트웨이에 대한 아웃 바운드 연결을 라우팅하는 동안 팟 (노드 포트 서비스)에 대한 인바운드 트래픽을 끊습니다. NAT 게이트웨이.

  • 허용하거나 다른 업체에 허용 할 수있는 Google 클라우드 지역의 기본 IP 범위가 있습니까?

  • GKE가 사전 예약 된 고정 IP 목록에서 노드 외부 IP를 선택하는 방법을 제공하는 경우

  • 단일 정적 IP 또는 포드의 아웃 바운드 트래픽을 나타내는 IP 범위를 갖는 다른 방법이 있습니까?

내가 좋아하는 유사한 질문에 발견 있지만, 포드 외부 접속해야 같은 NAT를 사용하는 경우 어떤 휴식 그들은 내 문제를 해결하지 않습니다.

답변:


6

Google Cloud는 이제 관리 형 NAT 게이트웨이 서비스 인 Cloud NAT를 제공 합니다.

이 게이트웨이는 GKE 클러스터와 함께 사용할 수 있습니다. GKE 클러스터는 내부의 모든 포드에 안정적인 공개 송신 IP를 제공하여 타사 서비스 제공 업체가 화이트리스트에 올릴 수 있도록합니다.

GKE와 함께 Cloud NAT를 사용하기위한 구현 예는 https://cloud.google.com/nat/docs/gke-example에서 제공됩니다.


클러스터는 개인용이어야합니까?
Gajus

3
예, 클러스터는 개인용이어야하지만 마스터는 공용 일 수 있습니다. 서비스 중 하나라도 공개해야하는 경우로드 밸런서에 의해 노출 될 수 있습니다.
Parag

@Parag 클러스터는 개인용이어야합니까? 노드 IP가 공용 인 경우 사용할 수있는 방법이 있습니까?
하스 치카 나

1
@SuhasChikkanna With CloudNAT 번호. 노드에 외부 IP가 있고 단일 아웃 바운드 IP가 필요한 경우 Squid를 사용하여 고유 한 NAT 게이트웨이 인스턴스를 만들고 조건부 라우팅을 통해 내부 서버를 인스턴스로 직접 라우팅하지만 외부의 트래픽이 발생합니다. NAT를 통해. 이렇게하면 사용자에게 단일 아웃 바운드 IP를 제공하면서 선택한 IP 소스에 노드에 액세스 할 수 있습니다.
Parag

@Parag 소리가 좋습니다! 확실히 시도 할 것입니다. 감사합니다 :)
Suhas Chikkanna

1

이 솔루션을 시도해 볼 수 있습니다.

https://cloud.google.com/solutions/using-a-nat-gateway-with-kubernetes-engine

정상적인 상황에서 Google Kubernetes Engine 노드는 모든 발신 트래픽을 노드 클러스터와 연결된 인터넷 게이트웨이를 통해 라우팅합니다. 인터넷 게이트웨이 연결은 노드 클러스터와 연결된 Compute Engine 네트워크에 의해 정의됩니다. 클러스터의 각 노드에는 임시 외부 IP 주소가 있습니다. 자동 확장 중에 노드가 생성 및 삭제되면 새 노드 IP 주소가 자동으로 할당됩니다.

기본 게이트웨이 동작은 정상적인 상황에서 잘 작동합니다. 그러나 다음과 같은 목적으로 임시 외부 IP 주소가 할당되는 방식을 수정할 수 있습니다.

  • 일관된 외부 IP 주소로 타사 서비스를 제공하십시오.
  • Google Kubernetes Engine 클러스터에서 나가는 트래픽을 모니터링하고 필터링합니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.