azure - 如何使用 LoadBalancer 服务从 Azure Kubernetes 内部获取客户端 IP 地址
问题描述
我正在获取节点 IP 地址而不是客户端 IP。是否可以使用类型的服务获取客户端 IP LoadBalancer
?或者我需要使用入口控制器吗?
apiVersion: v1
kind: Service
metadata:
name: app-svc
labels:
name: app-svc
environment: dev
spec:
type: LoadBalancer
loadBalancerIP: XXX.XXX.XXX.XXX
ports:
- name: http-port
port: 80
targetPort: 80
protocol: TCP
selector:
name: app-deploy
解决方案
您不需要任何 Ingress 控制器。但是需要spec.externalTrafficPolicy
在 Microsoft Azure 中将 Service 字段的值设置为“Local”(默认为“Cluster”)。
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
type: LoadBalancer
externalTrafficPolicy: Local
...
请参阅使用源 IP。
推荐阅读
- php - Symfony 4 - 不要在生产中加载 DataFixtures
- python - pandas.read_csv 找不到我的路径错误
- networking - Kubernetes 服务进行出站连接 - 如何使其源自虚拟 ip
- python - 保证非零相等时的 Numpy 2d 数组联合
- javafx - JavaFX 如何在 CSS 中设置高斯模糊
- python - 部署为包时 Python 导入错误
- python - How to patch an asynchronous class method?
- python-3.x - 安装 pyrebase 时出错
- php - Deploying Laravel 5.4 to Shared Hosting
- csv - Spark 读取 csv 文件时出错