默认情况下,它似乎在80上监听-很明智-但是,如果我希望它监听(例如)8000上的请求,我该如何指定呢?
为清楚起见,这是通过通过minikube addons enable ingress
启用的nginx控制器
答案 0 :(得分:1)
Ingress将HTTP和HTTPS路由从群集外部公开给 services 在集群中。
这意味着它将对HTTP和HTTPS端口使用默认端口。
从文档中我们可以阅读:
Ingress不会公开任意端口或协议。将HTTP和HTTPS以外的服务公开到互联网通常使用Service.Type=NodePort或Service.Type=LoadBalancer类型的服务。
答案 1 :(得分:0)
nginx-ingress控制器实际上允许更改http
和https
端口。
请参阅配置参数:
controller.service.ports.http
controller.service.ports.https
答案 2 :(得分:0)
虽然通常来说,Ingress不允许您在随机端口上公开随机的东西,但是如果使用nginx-ingress,则可以这样做。但是您必须使用其他注释。
例如,如果您的Pod暴露了443,但您希望它在端口8081上可用,则必须执行以下技巧:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: myservice
namespace: mynamespace
annotations:
kubernetes.io/ingress.class: nginx
nginx.org/listen-ports-ssl: "8081"
spec:
tls:
- hosts:
- host.org
secretName: my-host-tls-cert
rules:
- host: host.org
http:
paths:
- path: /
backend:
serviceName: my-service
servicePort: 443