gpt4 book ai didi

kubernetes-ingress - Kubernetes入口相同路径的多个端口

转载 作者:行者123 更新时间:2023-12-03 09:31:46 25 4
gpt4 key购买 nike

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

我有一个已经对我有用的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

最佳答案

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

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

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: name-virtual-host-ingress
spec:
rules:
- host: proxy.foo.com
http:
paths:
- backend:
serviceName: proxy-svc
servicePort: 8080
- host: metrics.foo.com
http:
paths:
- backend:
serviceName: metrics-svc
servicePort: 8082
- host: admin.foo.com
http:
paths:
- backend:
serviceName: admin-svc
servicePort: 8092
- host: grpc.foo.com
http:
paths:
- backend:
serviceName: grpc-svc
servicePort: 50051

关于kubernetes-ingress - Kubernetes入口相同路径的多个端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54676568/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com