我正在尝试为不带LB的2个服务创建一个nginx入口。首先,我创建nginx_ingress.yaml
:
kind: Service
apiVersion: v1
metadata:
name: ingress-nginx
namespace: ingress-nginx
labels:
app: ingress-nginx
spec:
selector:
app: ingress-nginx
type: NodePort
ports:
- name: http
port: 80
targetPort: http
- name: https
port: 443
targetPort: https
---
然后是echo_ingress.yaml
:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: echo-ingress
spec:
rules:
- host: subdomain1.example.com
http:
paths:
- backend:
serviceName: echo1
servicePort: 80
- host: subdomain2.example.com
http:
paths:
- backend:
serviceName: echo2
servicePort: 80
但是,当创建入口时,它没有显示地址,并且似乎运行不正常,我无法从curl
上的端口80获得任何信息:
NAME HOSTS ADDRESS PORTS AGE
echo-ingress git.satelkom.co.id,op.satelkom.co.id 80 8m9s
这是怎么了?
答案 0 :(得分:1)
如果您尝试定义路径?
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: echo-ingress
spec:
rules:
- host: subdomain1.example.com
http:
paths:
- backend:
serviceName: echo1
servicePort: 80
path: / # <--- Add this tag
- host: subdomain2.example.com
http:
paths:
- backend:
serviceName: echo2
servicePort: 80
path: / # <--- Add this tag
或在入口服务上定义外部IP
kind: Service
apiVersion: v1
metadata:
name: ingress-nginx
namespace: ingress-nginx
labels:
app: ingress-nginx
spec:
externalIPs: # <-- Try to add this 2 lines
- <YOUR IP LAN or WAN>
selector:
app: ingress-nginx
type: NodePort
ports:
- name: http
port: 80
targetPort: http # <-- Replace by port number: 80
- name: https
port: 443
targetPort: https # <-- Replace by port number: 443