Kubernetes Nginx 保留源 IP
Kubernetes Nginx Preserve Source IP
我有一些服务 运行 需要保留源 IP 才能正确执行身份验证。我是 运行 AKS 中的 Kubernetes 环境,使用 Nginx 作为我的 Ingress 控制器,我在理解如何正确实现它时遇到问题。
我通读了这个
还有这个
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 }}
您显然需要将该设置添加到 nginx ingress controller
服务,即带有 type
= LoadBalancer
的服务。
想一想,别无选择。 Nginx ingress controller
是您集群中的入口点,因此如果您不将源 IP 地址保存在那里,您将无法在之后的服务中使用它。
我有一些服务 运行 需要保留源 IP 才能正确执行身份验证。我是 运行 AKS 中的 Kubernetes 环境,使用 Nginx 作为我的 Ingress 控制器,我在理解如何正确实现它时遇到问题。
我通读了这个
还有这个
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 }}
您显然需要将该设置添加到 nginx ingress controller
服务,即带有 type
= LoadBalancer
的服务。
想一想,别无选择。 Nginx ingress controller
是您集群中的入口点,因此如果您不将源 IP 地址保存在那里,您将无法在之后的服务中使用它。