Marathon/Mesos - 为 UDP 和 TCP 使用相同的主机端口部署应用程序
Marathon/Mesos - deploy application using the same host port for both UDP and TCP
我尝试使用 Marathon/Mesos 部署应用程序。它有 2 个服务器端口,1 个 UDP 和 1 个 TCP。我想为 UDP 和 TCP 使用相同的端口号。但除非我使用不同的端口,否则它不会部署它。有什么想法吗?
"portMappings": [
{
"containerPort": 443,
"hostPort": 4300,
"servicePort": 10004,
"protocol": "tcp",
"labels": {}
},
{
"containerPort": 162,
"hostPort": 4300,
"servicePort": 10005,
"protocol": "udp",
"labels": {}
}
]
我看到以下错误:
2019-03-19T23:17:19.646760+00:00 controller marathon-services[4511]: [2019-03-19 23:17:19,645] INFO Acknowledge status update for task myserver-0.24a323d4-4a3d-11e9-83a5-054546b43537: TASK_ERROR (Resource 'ports:[4300-4300, 4300-4300]' is invalid: Invalid ranges resource: overlapping ranges) (mesosphere.marathon.core.task.update.impl.TaskStatusUpdateProcessorImpl$$EnhancerByGuice$f09936:ForkJoinPool-2-worker-31)
其他人好像也遇到过这个问题。 Marathon 试图分配同一个端口两次。 this comment on this github issue
中给出了解决方案
为您的场景重写:
您需要通过添加启动参数将资源端口添加到mesos从端口范围--resources-port=[4300-4300,31000-32000]
。
让我知道这是否适合您。
我尝试使用 Marathon/Mesos 部署应用程序。它有 2 个服务器端口,1 个 UDP 和 1 个 TCP。我想为 UDP 和 TCP 使用相同的端口号。但除非我使用不同的端口,否则它不会部署它。有什么想法吗?
"portMappings": [
{
"containerPort": 443,
"hostPort": 4300,
"servicePort": 10004,
"protocol": "tcp",
"labels": {}
},
{
"containerPort": 162,
"hostPort": 4300,
"servicePort": 10005,
"protocol": "udp",
"labels": {}
}
]
我看到以下错误:
2019-03-19T23:17:19.646760+00:00 controller marathon-services[4511]: [2019-03-19 23:17:19,645] INFO Acknowledge status update for task myserver-0.24a323d4-4a3d-11e9-83a5-054546b43537: TASK_ERROR (Resource 'ports:[4300-4300, 4300-4300]' is invalid: Invalid ranges resource: overlapping ranges) (mesosphere.marathon.core.task.update.impl.TaskStatusUpdateProcessorImpl$$EnhancerByGuice$f09936:ForkJoinPool-2-worker-31)
其他人好像也遇到过这个问题。 Marathon 试图分配同一个端口两次。 this comment on this github issue
中给出了解决方案为您的场景重写:
您需要通过添加启动参数将资源端口添加到mesos从端口范围--resources-port=[4300-4300,31000-32000]
。
让我知道这是否适合您。