【以下的问题经过翻译处理】 我有一个公开端口 8080 的 ECS 服务。我想让负载均衡器、目标组和目标使用该端口而不是端口 80。这是我的代码片段:
const servicePort = 8888;
const metricsPort = 8888;
const taskDefinition = new ecs.FargateTaskDefinition(this, 'TaskDef');
const repository = ecr.Repository.fromRepositoryName(this, 'cloud-config-server', 'cloud-config-server');
taskDefinition.addContainer('Config', {
image:ecs.ContainerImage.fromEcrRepository(repository),
portMappings: [{containerPort : servicePort, hostPort: servicePort}],
});
const albFargateService = new ecsPatterns.ApplicationLoadBalancedFargateService(this, 'AlbConfigService', {
cluster,
publicLoadBalancer : false,
taskDefinition: taskDefinition,
desiredCount: 1,
});
const applicationTargetGroup = new elbv2.ApplicationTargetGroup(this, 'AlbConfigServiceTargetGroup', {
targetType: elbv2.TargetType.IP,
protocol: elbv2.ApplicationProtocol.HTTP,
port: servicePort,
vpc,
healthCheck: {path: "/CloudConfigServer/actuator/env/profile", port: String(servicePort)}
});
const addApplicationTargetGroupsProps: elbv2.AddApplicationTargetGroupsProps = {
targetGroups:[applicationTargetGroup],
};
albFargateService.loadBalancer.addListener('alb-listener', {
protocol: elbv2.ApplicationProtocol.HTTP, port: servicePort, defaultTargetGroups: [applicationTargetGroup]}
);
}
}
但这行不通。健康检查在端口 80 以及 默认 URL 为“/” 上进行,并且失败了,任务在不断循环创建和失败。有一个target group, 配置了8080 端口和 正确的的健康检查URL,但target group 中没有 target。
请问: 在 80 以外的端口上实现负载平衡的推荐方法是什么?
谢谢