我正在部署一个微服务nodejs express应用到GKE,我成功地部署了服务(一个是带有静态IP @的入口服务,另一个是不会暴露在互联网上的NodePort服务)。
现在我正在尝试部署应用程序接口网关,这是一个快速网关应用程序,我第一次将其部署为LoadBalancer服务,它正在工作,以下是我的服务代码:
apiVersion: v1
kind: Service
metadata:
name: express-gateway-balancer
spec:
selector:
app: express-gateway
type: LoadBalancer
ports:
- protocol: TCP
port: 80
targetPort: 8080

现在我必须将传输转换为HTTPS,以便能够在运行HTTPS的react前端应用程序前调用API端点,所以我做了一个研究,方法是将api网关应用程序公开为一个入口,而不是LoadBalancer。
因此,我进行了更改(与我对其余部署所做的相同),并创建了一个静态IP @ "gateway-ip“以通过Ingress公开它:
这是我的service.yaml文件:
apiVersion: v1
kind: Service
metadata:
name: express-gateway-service
spec:
selector:
app: express-gateway
type: NodePort
ports:
- protocol: TCP
port: 80
targetPort: 8080我的Ingress.yaml文件:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: gateway-service-ingress
annotations:
kubernetes.io/ingress.global-static-ip-name: "gateway-ip"
spec:
backend:
serviceName: express-gateway-service
servicePort: 80以下是我的部署文件:
apiVersion: apps/v1
kind: Deployment
metadata:
name: express-gateway
labels:
app: express-gateway
spec:
selector:
matchLabels:
app: express-gateway
replicas: 3
template:
metadata:
labels:
app: express-gateway
spec:
containers:
- name: express-gateway
image: gcr.io/PROJECT_ID/apigatewayservice:v1
ports:
- name: gateway
containerPort: 8080
- name: admin
containerPort: 9876以下是我收到的错误的屏幕截图:


有什么解决方案吗?谢谢
发布于 2020-06-02 06:35:05
您是否拥有所有计划pods的默认端点?我是说"/“?Ingress执行内置的运行状况检查就绪探测,检查"/“是否可达。如果不是,它将声明它是不健康的。希望这能有所帮助。
https://stackoverflow.com/questions/62139888
复制相似问题