Jak uzyskać dostęp do zewnętrznego adresu IP usługi opartej na load balancerze (load balancer service) w kontrolerze Ingress?
sobes.tech AI
Odpowiedź od AI
W kontrolerze Ingress nie uzyskuje się bezpośredniego dostępu do zewnętrznego IP serwisu typu LoadBalancer. Kontroler Ingress działa jako punkt wejścia i kieruje ruch do różnych serwisów na podstawie reguł zdefiniowanych w zasobie Ingress.
Aby uzyskać dostęp do serwisu typu LoadBalancer przez Ingress, należy:
-
Utworzyć serwis typu
LoadBalancerdla swojej aplikacji. Dostawca Kubernetes w chmurze przypisze temu serwisowi zewnętrzny adres IP.// service.yaml apiVersion: v1 kind: Service metadata: name: my-app-service spec: selector: app: my-app ports: - protocol: TCP port: 80 targetPort: 80 type: LoadBalancer -
Utworzyć zasób
Ingress, który będzie kierował ruch do tego serwisu.// ingress.yaml apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: my-app-ingress spec: rules: - host: myapp.example.com # Lub inna domena/scieżka, pod którą będzie dostępna aplikacja http: paths: - path: / pathType: Prefix backend: service: name: my-app-service # Nazwa twojego serwisu LoadBalancer port: number: 80 # Port serwisu, na który będzie kierowany ruch -
Upewnić się, że kontroler Ingress jest zainstalowany i działa w klastrze. Kontroler Ingress (np. Nginx Ingress Controller, Traefik) będzie nasłuchiwał na przydzielony mu zewnętrzny adres IP i przekierowywał żądania na
myapp.example.comdo serwisumy-app-service.
W ten sposób dostęp do aplikacji jest zapewniony przez zewnętrzny IP kontrolera Ingress, a nie bezpośrednio przez zewnętrzny IP serwisu typu LoadBalancer (chociaż Ingress może korzystać z tego LoadBalancera, aby uzyskać dostęp do podów).