Kubernetes 如何为Minikube上的入口控制器指定自定义端口?

Kubernetes 如何为Minikube上的入口控制器指定自定义端口?,kubernetes,minikube,Kubernetes,Minikube,默认情况下,它似乎在80上侦听—这是合理的—但如果我希望它侦听(例如)8000上的请求,我将如何指定它 为清楚起见,这是通过nginx控制器实现的,通过minikube插件启用入口) 入口公开从集群外部到集群的HTTP和HTTPS路由 在集群内 这意味着它将为HTTP和HTTPS端口使用默认端口 从文档中,我们可以看到: 入口不会暴露任意端口或协议。向internet公开HTTP和HTTPS以外的服务通常使用类型为或的服务 控制器实际上允许更改http和https端口 请参阅配置参数: cont

默认情况下,它似乎在80上侦听—这是合理的—但如果我希望它侦听(例如)8000上的请求,我将如何指定它

为清楚起见,这是通过nginx控制器实现的,通过
minikube插件启用入口

入口公开从集群外部到集群的HTTP和HTTPS路由 在集群内

这意味着它将为HTTP和HTTPS端口使用默认端口

从文档中,我们可以看到:

入口不会暴露任意端口或协议。向internet公开HTTP和HTTPS以外的服务通常使用类型为或的服务

控制器实际上允许更改
http
https
端口

请参阅配置参数:

controller.service.ports.http
controller.service.ports.https

一般来说,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

工作出色!哇!