[英]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 request
或HTTP 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.