gpt4 book ai didi

azure - 如何禁用 AKS LoadBalancer 的端口探测?

转载 作者:行者123 更新时间:2023-12-02 11:52:16 26 4
gpt4 key购买 nike

我正在尝试在 Azure AKS 中部署 ftp 服务器镜像。为了向公众公开服务器,我添加了一个 LoadBalancer 类型的服务。

apiVersion: v1
kind: Service
metadata:
name: test-import-ftp
namespace: staging
spec:
loadBalancerIP: 168.63.x.x
type: LoadBalancer
ports:
- port: 21
name: ftp-control
targetPort: 21
- port: 50000
name: ftp-data-0
- port: 50001
name: ftp-data-1
- port: 50002
name: ftp-data-2
- port: 50003
name: ftp-data-3
- port: 50004
name: ftp-data-4
- port: 50005
name: ftp-data-5
- port: 50006
name: ftp-data-6
- port: 50007
name: ftp-data-7
- port: 50008
name: ftp-data-8
- port: 50009
name: ftp-data-9
selector:
app: test-import-ftp

它适用于控制端口,但不适用于数据端口。原因是,它为所有端口配置探测器,而 ftp 服务器不监听数据端口。这些端口将“按需”打开。

如何禁用数据端口的运行状况检查?

最佳答案

据我所知,您无法禁用运行状况检查,但可以使其与 FTP 服务器一起使用。

像这样调整您的配置:

[...]
spec:
loadBalancerIP: 168.63.x.x
type: LoadBalancer
healthCheckNodePort: 30021
externalTrafficPolicy: Local
ports: [...]

因此,您需要将healthCheckNodePort设置为合法nodePort范围内的端口,并将externalTrafficPolicy设置为Local

这将使服务打开一个节点端口,并且负载均衡器现在将仅检查该端口以确定可用性。缺点是您的健康检查现在只检查节点是否已启动,而不检查 ftp 服务是否正在运行。

为此,您必须将 externalTrafficPolicy 设置为 Local。这意味着容器会将实际的客户端源 IP 视为流量源,而不是内部 kubernetes 源。相应地调整您的任何服务设置。然而,对于 FTP,这是可取的,因为它允许服务器检查被动数据连接尝试是否由与原始控制连接相同的客户端完成。

参见https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/ ,“保留客户端源 IP”部分

关于azure - 如何禁用 AKS LoadBalancer 的端口探测?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54253399/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com