首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何禁用AKS LoadBalancer的端口探测?

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

Stack Overflow用户
提问于 2019-01-18 19:47:57
回答 2查看 1.2K关注 0票数 2

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

代码语言:javascript
运行
复制
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服务器不侦听数据端口。这些端口将按需开放。

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-18 20:16:12

这不可能。您可以手动切换这些侦听器,以使用扫描端口21的探针。但是查看代码,可能会在下一次服务更新时修改您的手动更改

您可以检查所有可用的注释:https://github.com/kubernetes/kubernetes/blob/master/pkg/cloudprovider/providers/azure/azure_loadbalancer.go

票数 1
EN

Stack Overflow用户

发布于 2019-01-19 00:30:19

AFAIK,您不能禁用运行状况检查,但您可以使它们与FTP服务器一起工作。

像这样调整你的配置:

代码语言:javascript
运行
复制
[...]
spec:
  loadBalancerIP: 168.63.x.x
  type: LoadBalancer
  healthCheckNodePort: 30021
  externalTrafficPolicy: Local
  ports: [...]

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

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

要使其正常工作,必须将externalTrafficPolicy设置为本地。这意味着容器将看到实际的客户端源ip作为流量源,而不是内部kubernetes源。相应地调整您的任何服务设置。但是,对于FTP,这是可取的,因为它允许服务器检查被动数据连接尝试是由与原始控制连接相同的客户端完成的。

请参阅https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/的“保留客户端源IP”一节

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54253399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档