Я сослался на приведенную ниже ссылку от Google для моей реализации https://cloud.google.com/kubernetes-engine/docs/how-to/load-balance-ingress
Я использую ingress-gce для обеспечения доступа к интерфейсу и бэкэнду.
интерфейс - это приложение на основе реакции, где служба имеет тип NodePort backedn - это приложение на основе nodeJS, где служба имеет тип NodePort
, ниже - входящая конфигурация
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: "nginx"
kubernetes.io/ingress.global-static-ip-name: ia-dev-ip
nginx.ingress.kubernetes.io/rewrite-target: /$1
name: ia-prod-ingress
namespace: default
spec:
rules:
- http:
paths:
- path: /(.*)
backend:
serviceName: ia-prod-landingpage-deploy-service
servicePort: 80
- path: /cms(/|$)(.*)
backend:
serviceName: ia-prod-cms-deploy-service
servicePort: 80
ниже приведены подробности i получать, когда я делаю kubectl, описывая ing ia-prod-ingress
Name: ia-prod-ingress
Namespace: default
Address: xx.xxx.xx.xx
Default backend: default-http-backend:80 (aa.aa.aa.aa:8080)
Rules:
Host Path Backends
---- ---- --------
*
/(.*) ia-prod-landingpage-deploy-service:80 (bb.bb.bb.bb:80)
/cms(/|$)(.*) ia-prod-cms-deploy-service:80 (cc.cc.cc.cc:8080)
Annotations:
kubectl.kubernetes.io/last-applied-configuration: {"apiVersion":"extensions/v1beta1","kind":"Ingress","metadata":{"annotations":{"kubernetes.io/ingress.class":"nginx","kubernetes.io/ingress.global-static-ip-name":"ia-dev-ip","nginx.ingress.kubernetes.io/rewrite-target":"/$1"},"name":"ia-prod-ingress","namespace":"default"},"spec":{"rules":[{"http":{"paths":[{"backend":{"serviceName":"ia-prod-landingpage-deploy-service","servicePort":80},"path":"/(.*)"},{"backend":{"serviceName":"ia-prod-cms-deploy-service","servicePort":80},"path":"/cms(/|$)(.*)"}]}}]}}
kubernetes.io/ingress.class: nginx
kubernetes.io/ingress.global-static-ip-name: ia-dev-ip
nginx.ingress.kubernetes.io/rewrite-target: /$1
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal CREATE 20m nginx-ingress-controller Ingress default/ia-prod-ingress
Normal UPDATE 3m30s (x7 over 19m) nginx-ingress-controller Ingress default/ia-prod-ingress
, когда я посещаю URL-адреса с IP-адресом, который я получаю от ingress-gce, как показано ниже
http://ipaddress/ - > Внешнее приложение загружается, как ожидалось.
http://ipaddress/cms -> Я ожидаю, что серверное приложение ответит. однако даже на http://ipaddress/cms загружается интерфейсное приложение ..
любая идея, какое исправление необходимо для доступа к бэкэнду?
Ниже приведен yaml-файл конфигурации входа, который помог мне решить правильные пути ко всем компонентам
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: "nginx"
kubernetes.io/ingress.global-static-ip-name: ia-dev-ip
nginx.ingress.kubernetes.io/rewrite-target: /$1
name: ia-prod-ingress
namespace: default
spec:
rules:
- host: xx.yy.zzz.yy.xip.io
http:
paths:
- path: /(.*)
backend:
serviceName: ia-prod-landingpage-deploy-service
servicePort: 80
- path: /cms/(.*)
backend:
serviceName: ia-prod-cms-deploy-service
servicePort: 80
- path: /tablegenerator/(.*)
backend:
serviceName: ia-prod-metabase-deploy-service
servicePort: 80
- path: /wrapperservice/(.*)
backend:
serviceName: ia-prod-wrapperservice-deploy-service
servicePort: 80