Wdrażam aplikację internetową przy użyciu Google Kubernetes Engine i chcę ją udostępnić za pośrednictwem modułu równoważenia obciążenia na istniejącym statycznym adresie IP, który kontroluję w ramach tego samego projektu w Google Cloud Platform, ponieważ nazwa domeny, której chcę użyć już wskazuje na ten adres IP.
Plik yaml, którego użyłem dla zasobnika, to:
apiVersion: v1
kind: Pod
metadata:
name: my-pod
labels:
app: my-app
spec:
containers:
- name: my-container
image: gcr.io/my-project/my-app:latest
Mogę skonfigurować moduł równoważenia obciążenia za pomocą:
apiVersion: v1
kind: Service
metadata:
name: my-load-balancer
spec:
ports:
- port: 80
targetPort: 80
selector:
app: my-app
type: LoadBalancer
Zapewnia to zewnętrzny adres IP, na którym aplikacja jest dostępna, ale nie mogę znaleźć sposobu, aby skonfigurować go tak, aby korzystał z adresu IP, który chcę. Dokumentacja usług wymienia ustawienie spec.clusterIP, ale wydaje się, że nie dotyczy to zewnętrznego adresu IP. Podobnie po skonfigurowaniu modułu równoważenia obciążenia pole status.loadBalancer.ingress.ip usługi jest ustawiane na zewnętrzny adres IP, ale nie wydaje się, aby było to ustawienie konfigurowalne.
Alternatywnie próbowałem ręcznie utworzyć regułę przekazywania w konsoli Google Compute Engine, aby skierować ruch z mojego statycznego adresu IP do puli docelowej skonfigurowanej przez Kubernetes, ale kiedy próbuję się połączyć, połączenie jest odrzucane.
Czy jest jakiś sposób, aby zrobić to, co chcę - ujawnić moduł Kubernetes (lub kontroler replikacji) w silniku Google Kubernetes na wybranym statycznym adresie IP?
Dobre wieści. Zostanie to naprawione w Kubernetes v1.1. Możesz ustawić
service.spec.loadBalancerIP
polu adres IP, który znasz.Poprzedni:
Jest to funkcja, która spadła przez pęknięcia. Miał działać (a może nawet w pewnym momencie zadziałał), ale nie został dobrze przetestowany i został zepsuty po drodze, a następnie jakby przypadkowo zaprojektowany (tymczasowo).
Jest na mojej krótkiej liście rzeczy do naprawy po 1.0.
https://github.com/GoogleCloudPlatform/kubernetes/issues/10323
źródło