簡體   English   中英

Kubernetes 帶入口的反向代理

[英]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服務(您沒有在問題中指定此內容),您可以簡單地創建一個具有端口443targetPort的“內部”(常規)服務8280

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM