2017-02-24 5 views
1

AWS의 포드 간의 클러스터 간 통신에 대해 질문했습니다.Kubernetes 포드와의 AWS 클러스터 간 통신

kubernetes를 사용하여 AWS에 클러스터를 배포하고 있습니다. 두 클러스터 모두 같은 지역 및 AZ에 있습니다. 두 클러스터는 중복되지 않는 서브넷을 사용하여 자체 VPC에 배포됩니다. 두 VPC 간의 통신을 설정하기 위해 VPC 피어링을 성공적으로 만들었습니다. VPC의 Minions (인스턴스)는 사설 IP를 통해 서로 핑 (ping) 할 수 있습니다.

질문 하나의 클러스터 (VPC)의 Kubernetes 포드는 내부 IP를 통해 다른 클러스터의 포드를 핑할 수 없습니다. 나는 포드와 미니언을 떠나는 트래픽을 보지만 다른 VPC에서는 그것을 보지 못한다. 여기

는 IP 정보입니다 :

클러스터 1 (VPC 1) - 서브넷 172.21.0.0/16 VPC 1 미니언 (인스턴스) - 내부 IP - 172.21.0.232 포드 미니언 1 - IP - 10.240 .1.54

클러스터 2 (VPC 2) - 서브넷 172.20.0.0/16 미니언 VPC 2 (예) - 내부 IP - 172.20.0.19 포드 미니언 1 - IP - 10.241.2.36

I 두 개의 VPC 사이에서 VPC 피어링을 구성 했으므로 VPC 1 (172.21.0.232)의 미니언을 미니언에 ping 할 수 있습니다.in IP 172.20.0.19

그러나 VPC 1, VPC 2의 Minion 1 - IP 10.240.1.54, Pion 10.241.2.36에서 Ping을 시도 할 때 ping을 수행 할 수 없습니다.

AWS에서 지원되는 사용 사례입니까? 나는 어떻게 그것을 성취 할 수 있는가. 두 인스턴스 모두에 보안 그룹을 구성하여 소스 10.0.0.0/8의 모든 트래픽을 허용하지만 도움이되지 않았습니다.

정말 감사드립니다!

답변

1

클러스터 외부의 포드와 직접 통신 할 수 없습니다. 포드는 services을 통해 외부에 노출 될 수 있습니다.

가 다양한 옵션이지만, 다음과 같은 정의가 기본 서비스가 다른 클러스터에 미리 정의 된 포트를 통해 포드 노출 될 수 있습니다 : 그와

--- 
kind: Service 
apiVersion: v1 
metadata: 
    name: my-service 
spec: 
    selector: 
    app: MyApp 
    ports: 
    - protocol: TCP 
    port: 80 
    targetPort: 9376 
    nodePort: 34567 

당신은을 통해 포드에 액세스 할 수 있습니다 어떤 kubernetes 노드에 매핑되어있는 34567 포트.

그 외에도 ingress configurations을 확인해야합니다.

공식 문서 외에 매우 유용한 요약은 Kubernetes Services and Ingress Under X-ray 블로그 게시물입니다.