簡體   English   中英

如何在 Kuberenetes (GKE) 中添加用於身份驗證和負載平衡的反向代理?

[英]How to add a reverse proxy for authentication & load balancing in Kuberenetes (GKE)?

好的,我有一個由部署到 GKE 的多個節點組成的數據庫。

deployment.yaml 將每個節點添加為 ClusterIP,這是有道理的。 這是完整的部署文件:

https://github.com/dgraph-io/dgraph/blob/master/contrib/config/kubernetes/dgraph-ha/dgraph-ha.yaml

無論出於何種原因,數據庫的安全功能為零,因此我無法使用 LoadBalancer 服務公開任何部分,因為這樣做會提供對整個數據庫的不安全訪問。 供應商爭辯說,安全完全是用戶的問題。 AlphaNode 帶有一個 API 端點,它也是不安全的,但我實際上想從外部 IP 連接到該 API 端點。

所以,我能做的最好的事情就是添加一個 NGNIX 作為(反向)代理,通過身份驗證來保護對 Alpha 節點的 API 端點的訪問。 實際上,我有三個 alpha 節點,因此添加負載平衡是有意義的。 我在 Docker Compose 中找到了一個對三個 alpha 節點進行負載平衡的配置,但沒有進行身份驗證。:

https://gist.github.com/MichelDiz/42954e321620159c872c35c20e9d85c6

現在,我面臨的百萬美元問題是,如何向 Kubernetes 添加 NGNIX 負載平衡,以驗證和負載平衡到我的(ClusterIP)alpha 節點的傳入流量?

任何指針? 有什么幫助嗎?

如果您想以這種方式進行操作,您可以部署自己的 nginx 部署並將其公開為LoadBalancer Service 您可以使用 nginx 支持的不同身份驗證機制對其進行配置。

相反,您可以使用由支持身份驗證的IngressController支持的Ingress資源。 檢查您的 kubernetes 發行版是否提供IngressController以及它是否支持身份驗證。 如果沒有,您可以安裝支持身份驗證的nginxTraefik IngressControllers。

看起來 GKE 入口最近增加了對 IAP 基礎身份驗證的支持,該支持仍處於測試階段 - https://cloud.google.com/iap/docs/enabling-kubernetes-howto

如果您正在尋找更傳統的入口身份驗證類型,請安裝 nginx 或 traefik 並使用kubernetes.io/ingress.class注釋,以便只有 IngressController 聲明您的入口資源 - https://kubernetes.github.io/ingress-nginx /用戶指南/多入口/

暫無
暫無

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

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