[英]Kubernetes Reverse proxy with Ingress
我必須創建一個入口作為反向代理來更改用於調用我的外部服務的端口。 我必須使用 Ingress,因為 LoadBalancer 在我的本地 K8 集群上不起作用。
外部服務
apiVersion: v1
kind: Service
metadata:
name: extService
spec:
type: ExternalName
externalName: ext.serv.com
在我的代碼中,我有一個硬編碼配置,始終使用端口 8280 進行 extService 調用。 但是,從我的本地集群中,我必須使用端口 443 調用 extService
我開發了以下Ingress
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: optcore-ingress
annotations:
kubernetes.io/ingress.class: nginx-ingress
spec:
rules:
- host: extSrvice
http:
paths:
- path: /
backend:
serviceName: optcore
servicePort: 443
但它不起作用。
好吧, ExternalName旨在用於集群中的工作負載,以與集群“外部”的事物進行通信。
本質上,您正在劫持 ExternalName 服務的使用以及 Kubernetes 入口資源/nginx 入口 controller。 所以它很可能不會起作用。 此外,Ingress 資源應該與集群內部(而不是外部)的服務一起使用。
如果您真的希望在8280
上運行的外部服務能夠在443
上偵聽。 您可以在您的服務前使用 nginx、haproxy 等設置常規反向代理。
如果由於某種原因您在集群內運行8280
服務(您沒有在問題中指定此內容),您可以簡單地創建一個具有端口443
和targetPort
的“內部”(常規)服務8280
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.