嗨,我目前正在尝试使用谷歌kubernetes引擎部署我的应用程序 . 我将我的前后服务暴露为NodePort,我创建了一个名为“ip”的全局静态IP地址 . 我创建了一个入口资源 . 入口资源工作正常,直到我添加了路径规则 .
这是我的入口资源
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress
annotations:
kubernetes.io/ingress.global-static-ip-name: ip
labels:
app: myapp
part: ingress
spec:
rules:
- http:
paths:
- path: /*
backend:
serviceName: backapp
servicePort: 9000
- path: /front/*
backend:
serviceName: frontapp
servicePort: 3000
这是我的服务回来:
apiVersion:v1种类:服务元数据:
labels:
app: myapp
part: back
name: backapp
namespace: default
spec:
clusterIP: 10.*.*.*
externalTrafficPolicy: Cluster
ports:
- nodePort: 30646
port: 9000
protocol: TCP
targetPort: 9000
selector:
app: myapp
part: back
sessionAffinity: None
type: NodePort
面前:
apiVersion: v1
kind: Service
metadata:
labels:
app: myapp
part: front
name: frontapp
namespace: default
spec:
clusterIP: 10.*.*.*
externalTrafficPolicy: Cluster
ports:
- nodePort: 31609
port: 3000
protocol: TCP
targetPort: 3000
selector:
app: myapp
part: front
sessionAffinity: None
type: NodePort
每次我试着去http://external-ingress-ip/front
http:// external-ingress-ip / front / home http:// external-ingress-ip / users http:// external-ingress-ip / ...
我得到的只是 default backend - 404
所以我的问题是:我的配置有什么问题,当我添加路径时会发生什么变化?
1 回答
Kubernetes NodePort服务是直接向您的服务获取外部流量的最基本方式 .
顾名思义,NodePort在所有节点(VM)上打开一个特定端口,并且发送到该端口的任何流量都将转发到该服务 .
回到你的问题 . 尝试使用该配置 . 它更清晰,只包含所需的选项 .
请记住,两个服务的
ingress.global-static-ip-name
和targetPort
都是您的Pods端口值 .此外,还需要定义单独的服务来处理传入流量:
以及前端服务的第二种配置:
如果新配置不合适,请写一条评论详情 .
(我想说 Thank you 到Anton Kostenko用于帮助手并使配置文件正常工作)