Устранение неполадок при маршрутизации с помощью Kubernetes Ingress - PullRequest
0 голосов
/ 25 сентября 2019

Я попытался настроить среду GKE с модулем внешнего интерфейса (cup-fe) и внутренним модулем, который использовался для аутентификации пользователя при входе в систему (cup-auth), но я не могу заставить свой вход работать.

Ниже приведен интерфейсный модуль (cup-fe), запускающий nginx с угловым приложением.Я также создал статический IP-адрес, разрешенный с помощью «cup.xxx.it» и «cup-auth.xxx.it» dns:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: cup-fe
  namespace: default
  labels:
    app: cup-fe
spec:
  replicas: 2
  selector:
    matchLabels:
      app: "cup-fe"
  template:
    metadata:
      labels:
        app: "cup-fe"
    spec:
      containers:
      - image: "eu.gcr.io/xxx-cup-yyyyyy/cup-fe:latest"
        name: "cup-fe"
      dnsPolicy: ClusterFirst

Тогда модуль аутентификации (cup-auth):

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: cup-auth
  namespace: default
  labels:
    app: cup-auth
spec:
  replicas: 1
  selector:
    matchLabels:
      app: cup-auth
  template:
    metadata:
      labels:
        app: cup-auth
    spec:
      containers:
        image:  "eu.gcr.io/xxx-cup-yyyyyy/cup-auth:latest"
        imagePullPolicy: Always
        name: cup-auth
        ports:
        - containerPort: 8080
          protocol: TCP
        - containerPort: 8443
          protocol: TCP
        - containerPort: 8778
          name: jolokia
          protocol: TCP
        - containerPort: 8888
          name: management
          protocol: TCP
      dnsPolicy: ClusterFirst

Затем я создал два NodePorts для предоставления вышеуказанных модулей:

kubectl expose deployment cup-fe --type=NodePort --port=80
kubectl expose deployment cup-auth --type=NodePort --port=8080

Наконец, я создал вход для маршрутизации внешних http-запросов к службам:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: http-ingress
  namespace: default
  labels:
    app: http-ingress
spec:
  rules:
  - host: cup.xxx.it
    http:
      paths:
      - path: /*
        backend:
          serviceName: cup-fe
          servicePort: 80
  - host: cup-auth.xxx.it
    http:
      paths:
      - path: /*
        backend:
          serviceName: cup-auth

Итак, я могу связаться с модулем внешнего интерфейса в http://cup.xxx.it,, угловое приложение перенаправляет меня на http://cup -auth.xxx.it / login , но я получаю только 502 неверных запроса.С помощью команды kubectl describe ingress я вижу нездоровый бэкэнд для модуля cup-auth.

Я вставляю успешный вывод, используя метку cup-auth:

$ kubectl exec -it cup-fe-7f979bb747-6lqfx wget cup.xxx.it/login
Connecting to cup.xxx.it
login                100% |********************************|  1646  0:00:00 ETA

И затем нерабочий выход:

$ kubectl exec -it cup-fe-7f979bb747-6lqfx wget cup-auth.xxx.it/login
Connecting to cup-auth.xxx.it
wget: server returned error: HTTP/1.1 502 Bad Gateway
command terminated with exit code 1
...