我正在尝试使用负载平衡器来公开我在EKS pod上运行的服务。我的服务在这样的Yaml中定义:
kind: Service
apiVersion: v1
metadata:
name: mlflow-server
namespace: default
labels:
app: mlflow-server
annotations:
service.beta.kubernetes.io/aws-load-balancer-type: nlb
spec:
externalTrafficPolicy: Local
type: LoadBalancer
selector:
app: mlflow-server
ports:
- name: http
port: 88
targetPort: http
- name: https
port: 443
targetPort: https
这是为运行mlflow服务器的Pod定义服务。应用此设置并访问为该服务生成的外部IP时,出现This site can’t be reached
网页错误。将服务作为负载均衡服务公开以访问mlflow ui时,我会缺少什么吗?
答案 0 :(得分:0)
对于基本的Loadbalancer类型服务,不需要注释service.beta.kubernetes.io/aws-load-balancer-type: nlb
,这将创建网络负载均衡器。现在,如果您需要成为NLB,则可能存在以下问题:
应用设置时,nlb需要几分钟的时间。如果在部署后立即对其进行检查,它将无法接受流量。请在您的AWS-EC2console>“负载平衡器”选项卡中检查所需的网络负载平衡器是否已启动。
第二个更有可能发生的问题是NLB仅可以附加某些实例类型。要检查您是否可以通过以下链接。 https://docs.aws.amazon.com/elasticloadbalancing/latest/network/target-group-register-targets.html#register-deregister-targets
因此,如果您实际上不需要网络负载平衡器,请删除注释,因为nlb的电荷也较高。但是,如果这是最严峻的要求,请检查第二个选项是否与您在AWS上使用的实例与Network LoadBalancer兼容。