我有一些正在運行的服務需要保留源 IP 才能正確執行身份驗證。我正在使用 Nginx 作為我的 Ingress 控制器在 AKS 中運行 Kubernetes 環境,并且在理解如何正確實作它時遇到問題。
我通讀了這個
https://kubernetes.io/docs/tutorials/services/source-ip/#source-ip-for-services-with-typeloadbalancer
還有這個
https://github.com/kubernetes/ingress-nginx/issues/1067
并閱讀將此 service.spec.externalTrafficPolicy 設定為 Local 應該可以解決我的問題,但是我很難理解我應該將其應用于哪個服務。幾乎聽起來這需要添加到 nginx 部署中,它會影響所有不受歡迎的部署。
我的問題是,有沒有辦法將它應用于我的服務清單,只針對需要它的服務,而不是使用 Nginx 注釋或調整我正在部署的服務的服務清單將其添加到所有內容中?
作為參考,這是我使用 helm 部署的服務清單:
apiVersion: v1
kind: Service
metadata:
name: {{ template "service.fullname" . }}
labels:
app: {{ template "service.name" . }}
chart: {{ template "service.chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
spec:
type: {{ .Values.service.type }}. #ClusterIP
ports:
- port: {{ .Values.service.port }}
targetPort: {{ .Values.service.targetPort }}
protocol: TCP
name: http
selector:
app: {{ template "service.name" . }}
release: {{ .Release.Name }}
uj5u.com熱心網友回復:
您顯然需要將該設定添加到nginx ingress controller服務中,即帶有type=的設定LoadBalancer。
如果您考慮一下,沒有其他選擇。Nginx ingress controller是集群中的入口點,因此如果您不將源 IP 地址保留在那里,那么您將無法在之后的服務中擁有它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/485724.html
標籤:nginx Kubernetes 天蓝色
