6

Używam usługi nginx w kontenerze dokowanym z Google Container Engine, który przekazuje określone nazwy domen do innych usług, takich jak API, Frontend itp. Mam prosty klaster dla tego skonfigurowanego usługi. Usługa Nginx to Load Balance.Przesyłanie dalej klienta HTTPS klienta z Google Container Engine

Zmienna środowiskowa REMOTE_ADDR zawsze zawiera wewnętrzny adres w klastrze Kubernetes. Szukałem: HTTP_X_FORWARDED_FOR, ale brakuje go w nagłówkach żądań. Czy jest możliwe skonfigurowanie usługi do zapisywania IP klienta zewnętrznego w żądaniach?

Odpowiedz

3

Przy obecnej implementacji równoważenia L3 (jak w przypadku Kubernetes 1.4) nie jest możliwe uzyskanie źródłowego adresu IP dla połączenia z usługą.

Brzmi jak Twój przypadek użycia może być również podawane za pomocą obiektu Ingress (lub ręcznie tworząc HTTP/S load balancer), który będzie umieścić adres źródłowy IP w nagłówku HTTP X-Forwarded-For dla łatwego pobierania przez swoich backendów.

+0

Stworzyłem system równoważenia obciążenia HTTPS i zawsze otrzymuję błąd 502, ponieważ testy stanu nie przeszły pomyślnie. Czy przypadkiem moja konfiguracja nie została poprawnie skonfigurowana? – Sigrlami

+0

Czy dodałeś regułę zapory sieciowej, aby umożliwić im trafienie w backend? –

+0

Tak, więc chodzi o to, że mam regułę firewalla, by trafić tag 'my-https', a także kontrolę zdrowia dla IG, sprawdzenie kondycji dla grupy nie działa i restartuje maszynę wirtualną i usuwa znaczniki, które są używane dla reguły zapory ogniowej. Używam pojemników na tych maszynach wirtualnych i nie ma niczego na maszynie wirtualnej, która powinna odpowiadać, ale mam odwzorowanie portów VM 443-> 443 (Container Nginx) i myślę, że to jest problem. – Sigrlami

Powiązane problemy