2017-11-28 19 views
0

Kubernetes에서 제공 한 examples을 사용하여 Google Kubernetes Engine에 Redis 클러스터를 배포했습니다. 그것은 예상대로 작동합니다.Google Kubernetes Engine에서 Redis 클러스터에 액세스

클라이언트 응용 프로그램에서이 클러스터에 연결하려고 시도하고 있습니다. Redis는 암호화를 제공하지 않으며 클러스터를 세계에 공개하는 권장 관행도 아니며 개인 및 신뢰할 수있는 네트워크에서 액세스하도록되어 있습니다.

기본적으로 redis가 루프백 인터페이스에 바인딩되는 경우 표준 (Go 또는 Python) 클라이언트 라이브러리를 클러스터에 어떻게 연결할 수 있습니까?

+1

나는 당신이 달성하고자하는 것이 이미 논의되고 있다고 생각합니다. [here] (https://stackoverflow.com/questions/32928755/gke-secured-access-to-services-from-outside-the-cluster). 또한 귀하의 Google Project (VPN 프로젝트 간 VPN) (https://github.com/kubernetes/kubernetes/issues/14545)와 애플리케이션이 실행되는 곳을 설정하고 GKE 클러스터로 트래픽을 전달할 수 있다고 생각합니다. [alias-ip] (https://cloud.google.com/vpc/docs/alias-ip)를 사용하여 – Carlos

답변

1

카를로스가 설명한대로 kubectl proxy으로 접근 할 수 있습니다. 여기에 몇 가지 대안이 있습니다.

  1. 저는 Redis-as-a-Service를 제공하는 클라우드 서비스가 어떻게 이것을하는지 봅시다. 그들은 암호 인증 모델을 가지고 있습니까? TLS 인증서가 있습니까? 그들이 어떻게 인증을 제공하는지 파악하고 그렇게 구성 할 수 있습니다.

  2. 인증이없는 경우 kubectl proxykubectl port-forward은 안전한 터널을 제공하므로 공용 인터넷에 redis 서비스를 노출 할 필요가 없습니다.

  3. 새로운 기능 사용 Internal Load Balancerhttps://cloud.google.com/kubernetes-engine/docs/how-to/internal-load-balancing. 이를 통해 네트워크의 다른 GCE VM에 Redis 클러스터 (비공개 IP 주소로 GKE에서 실행)를 액세스 할 수 있습니다. 이것은 여전히 ​​인증/승인을하지는 않지만 적어도 공용 인터넷에는 노출되어 있지 않습니다.

0

위의 3 번 포인트는 클러스터 외부의 인스턴스에 대한 액세스를 제공하거나 클러스터 IP 서비스를 만들고 이름으로 클러스터 내에서 사용할 수 있습니다.