Kubernetes入口相同路径的多个端口

时间:2019-02-13 17:56:36

标签: kubernetes-ingress

经过大量的搜索和搜索(即使在这里),我也无法找到问题的明确答案。因此,我希望这里的某人能够为我指明正确的方向。

我有一个已经对我有用的Kube Service定义,但是现在我只用LoadBalancer就公开了它。这是我当前的Service yaml:

apiVersion: v1
kind: Service
metadata:
  name: my-service
  namespace: namespace1
  labels:
    app: my-service
spec:
  type: LoadBalancer
  selector:
    app: my-service
    tier: web
  ports:
  - name: proxy-port
    port: 8080
    targetPort: 8080
  - name: metrics-port
    port: 8082
    targetPort: 8082
  - name: admin-port
    port: 8092
    targetPort: 8092
  - name: grpc-port
    port: 50051
    targetPort: 50051

这显然只是TCP负载平衡。我想要做的是使用Mutual TLS来确保这一点,以便服务器仅接受来自具有授权证书的客户端的连接。

从我能在Kube领域看到的所有信息来看,我需要做的是Ingress定义。我一直在研究可以在kind:Ingress上找到的所有文档,但似乎找不到任何可以在同一路径上创建多个端口的单个Ingress的文档!

我在这里错过了什么吗?是否无法创建具有与上述服务定义相同功能的K8s Ingress

1 个答案:

答案 0 :(得分:0)

据我所知,您不能将自定义端口(例如8080)用于由Ingress Controller(例如NGINX HTTP(S)代理)支持的HTTPS LoadBalancer。 目前,Ingress的端口对于http是隐式的:80,对于https是:443,正如IngressRule的官方doc reference所解释。

我认为解决方法是为每个服务使用不同的主机,例如以下Ingress资源示例:

sh