问题描述:通过k8s配置ngxin-ingress 代理一个端口访问k8s内部tomcat service 出现 503 Service Temporarily Unavailable
如下是我的service和pod的yaml配置文件
apiVersion: apps/v1
kind: Deployment
metadata:
name: tomcat-deployment
namespace: wl-namespace
labels:
app: tomcat
spec:
replicas: 1
selector:
matchLabels:
app: tomcat
template:
metadata:
labels:
app: tomcat
spec:
containers:
- name: tomcat
image: tomcat
ports:
- containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
name: tomcat-service
namespace: wl-namespace
spec:
ports:
- port: 80
protocol: TCP
targetPort: 8080
我的ingress配置文件
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: nginx-ingress
spec:
rules:
- host: www.wanglei.com
http:
paths:
- path: /
backend:
serviceName: tomcat-service
servicePort: 80
经排查发现我的ingress配置没有配置命名空间,系统会自动使用default命名空间,而我的service,pod却配置wl-namespace自定义命名空间导致nginx-ingress无法找到对应的pod,service
修改ingress
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: nginx-ingress
#service,pod,ingress需要在同一命名空间
namespace: wl-namespace
spec:
rules:
- host: www.wanglei.com
http:
paths:
- path: /
backend:
serviceName: tomcat-service
servicePort: 80