[英]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
以及它是否支持身份驗證。 如果沒有,您可以安裝支持身份驗證的nginx或Traefik 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.