marathon 앱의 포트를 지정할 때.
servicePort는 앱에서 외부로 노출될 서비스 port를 의미한다.
servicePort: When you create a new application in Marathon (either through the REST API or the front end), you may assign one or more service ports to it. You can specify all valid port numbers as service ports or you can use 0 to indicate that Marathon should allocate free service ports to the app automatically
containerPort는 컨테이너에서 앱이 실행중인 포트를 지정한다.즉 load balancer와 앱 간에 연결되고 있는 port를 의미한다. 이 포트로 health check가 일어난다.
containerPort: A container port specifies a port within a container. This is only necessary as part of a port mapping when using BRIDGE
or USER
mode networking with a Docker container.
아래 예를 보면, 외부에서 8080포트로 접근할 수 있고, LB와 마라톤 앱간에는 18080으로 통신한다라는 뜻이다.
"container": {
"type": "DOCKER",
"volumes": [],
"docker": {
"image": "imageurl",
"network": "BRIDGE",
"portMappings": [
{
"containerPort": 8080,
"hostPort": 0,
"servicePort": 18080,
"protocol": "tcp",
"name": "8080",
"labels": {}
}
],
"privileged": false,
"parameters": [],
"forcePullImage": true
}
},
'mesos and marathon' 카테고리의 다른 글
[marathon] 80 -> 443 포트 리다이렉트(redirect) (0) | 2018.06.08 |
---|---|
특정 mesos 에만 동작하도록 하는 방법 (0) | 2018.06.01 |
[marathon] marathon의 상태, waiting, staging 해결하기 (0) | 2018.05.31 |
mesos 설정과 재시작 이슈 관련 (0) | 2018.04.13 |
[marathon] 마라톤 lb의 포트별 설정 (0) | 2018.04.10 |