我尝试使用集成在ECS上部署ThingsBoard :我建立了一个外部数据库,编写了
version: '3.8'
services:
thingsboard:
container_name: thingsboard
image: thingsboard/tb-postgres
restart: always
environment:
- SPRING_DATASOURCE_URL=jdbc:postgresql://<HOST>:<PORT>/thingsboard?sslmode=require
- SPRING_DATASOURCE_USERNAME=<USERNAME>
- SPRING_DATASOURCE_PASSWORD=<PASSWORD>
ports:
- '9090:9090'
- '1883:1883'
- '5683:5683/udp'我使用docker compose up在ECS上启动堆栈。
集群是正确创建的,我可以从CloudWatch日志中看到ThingsBoard容器正确启动(即使非常慢)。
然而,过了一段时间,ECS会取消由于健康检查失败而导致的任务。
ECS事件日志显示:
service thingsboard-ThingsboardService-XXX (port 9090) is unhealthy in target-group thing-Thing-XXX due to (reason Health checks failed).
service thingsboard-ThingsboardService-XXX (port 1883) is unhealthy in target-group thing-Thing-XXX due to (reason Health checks failed).
service thingsboard-ThingsboardService-XXX (port 5683) is unhealthy in target-group thing-Thing-XXX due to (reason Health checks failed).修改健康检查配置,我至少能够登录到ThingsBoard,并检查一切都是正确的。然而,几分钟后,健康检查失败会重复出现,任务也会停止。
为什么会这样呢?
发布于 2021-10-22 13:31:55
这些端口不是HTTP端口。9090是gRPC。1883年是MQTT,5683是CoAP。最有可能的是,健康检查并没有预料到这些协议。我建议禁用它们并只检查HTTP(S)。
https://stackoverflow.com/questions/65478347
复制相似问题