Я попытался настроить среду 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