Как да се обърнете към външния IP адрес на услугата, базирана на балансировчика на натоварване (load balancer service) в контролера Ingress?
sobes.tech AI
Отговор от AI
В контролера Ingress не се обръща директно към външния IP на услуга от тип LoadBalancer. Контролерът Ingress действа като входна точка и маршрутизира трафика към различни услуги въз основа на правилата, дефинирани в ресурса Ingress.
За да се осъществи достъп до услуга от тип LoadBalancer чрез Ingress, трябва:
-
Да създадете услуга от тип
LoadBalancerза вашето приложение. Доставчикът на Kubernetes в облака ще присвои на тази услуга външен 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 -
Да създадете ресурс
Ingress, който ще маршрутизира трафика към тази услуга.// ingress.yaml apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: my-app-ingress spec: rules: - host: myapp.example.com # Или друг домейн/път, до който ще бъде достъпно приложението http: paths: - path: / pathType: Prefix backend: service: name: my-app-service # Името на вашата услуга LoadBalancer port: number: 80 # Портът на услугата, към който ще се пренасочва трафикът -
Да се уверите, че контролерът Ingress е инсталиран и работи в клъстера. Контролерът Ingress (например, Nginx Ingress Controller, Traefik) ще слуша на предоставения му външен IP и ще пренасочва заявките към
myapp.example.comкъм услугатаmy-app-service.
По този начин, достъпът до приложението се осигурява чрез външния IP на контролера Ingress, а не директно чрез външния IP на услугата от тип LoadBalancer (макар че Ingress може да използва този LoadBalancer за достъп до подовете).