簡體   English   中英

Kubernetes 負載均衡器 Oracle Cloud NGINX 入口控制器問題

[英]Kubernetes Load Balancer Oracle Cloud NGINX ingress controller problem

第一篇關於堆棧溢出的帖子,希望我能得到一些幫助:)

我已經掙扎了一段時間試圖讓它發揮作用。 所以基本上我在 Oracle Cloud 中有 kubernetes 集群。 我正在使用 nginx 入口控制器 + 證書管理器來獲取證書。

當我部署 nginx 入口控制器時,Oracle Cloud 為我提供了負載均衡器。

所以我們來解決我的問題。 默認情況下,負載均衡器使用 TCP 協議在雲中獲取偵聽器(這里是圖片) TCP 偵聽器

在 kubernetes 服務(nginx 入口控制器)中,協議也是 tcp。

使用此設置時,一切正常。

我也在使用 SNI(一個端點上的多個服務)。

但是 Oracle Cloud 提供的 WAF 只能與 http listeners 一起使用(另外一張圖片) Http listener 因此,如果我打算使用 WAF,我需要在負載均衡器上設置這個 http 偵聽器。

這是 nginx 入口服務圖片,您可以在其中看到協議是 TCP。 TCP nginx 入口服務

當我將偵聽器更改為 http. 當我嘗試在瀏覽器上打開它時,我的域出現此錯誤“ERR_SSL_PROTOCOL_ERROR”。

我嘗試了很多事情,包括更改 nginx 入口控制器的配置、添加注釋等。

nginx.ingress.kubernetes.io/backend-protocol: HTTP
nginx.ingress.kubernetes.io/ssl-passthrough: 'true'
nginx.ingress.kubernetes.io/ssl-redirect: 'true'

但沒有任何效果我總是得到“ERR_SSL_PROTOCOL_ERROR”。

所以我不知道這是否可能,我的意思是在 tcp 協議(nginx 入口服務)上是否有 http 偵聽器?

任何意見,將不勝感激。

先感謝您。

以 HTTPS 或 SSL 直通方式支持的HTTP偵聽器的 OCI TCP偵聽器。

如果您在LB級別附加自簽名SSL證書,則可以先創建它。

如果您正在使用 cert-manager 並將其保存到一個很好的秘密中,您也可以遵循它。

如果您遵循該方法(如我所做的那樣),您可以轉到 LoadBalancer 並將協議或偵聽器手動更改為HTTP而不是TCP ,並將證書附加到443端口上的LB。

下一個

轉到Nginx 入口控制器 svc並對其進行編輯並將443的目標端口更改為http

在此處輸入圖像描述

在此處輸入圖像描述

現在,在您的應用入口配置中,您可以使用注釋,它不會出現400 Bad requestHTTP requested on HTTPS的錯誤

nginx.ingress.kubernetes.io/backend-protocol: HTTPS
nginx.ingress.kubernetes.io/ssl-passthrough: 'true'
nginx.ingress.kubernetes.io/ssl-redirect: 'true'

暫無
暫無

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

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