经过大量的搜索和搜索(即使在这里),我也无法找到问题的明确答案。因此,我希望这里的某人能够为我指明正确的方向。
我有一个已经对我有用的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
?
答案 0 :(得分:0)
据我所知,您不能将自定义端口(例如8080)用于由Ingress Controller(例如NGINX HTTP(S)代理)支持的HTTPS LoadBalancer。 目前,Ingress的端口对于http是隐式的:80,对于https是:443,正如IngressRule的官方doc reference所解释。
我认为解决方法是为每个服务使用不同的主机,例如以下Ingress资源示例:
sh