これらすべてのポートがコンテナポート、ホストポート、portMappingsのサービスポートを意味するものと混同されています。以下は私のjsonです。
"portMappings": [
{
"containerPort": 9000,
"hostPort": 9000,
"labels": {
"VIP_0": "/app2n:9000"
},
"protocol": "tcp",
"servicePort": 10101
}
]
containerPort
はコンテナー内のポートであり、コンテナー化されたアプリがリッスンするポートです。hostPort
は、コンテナーが実行されているMesosエージェントで表示されるポートです。servicePort
は、フレームワークの内部使用のための抽象的なポートです。コンテナーとそのhostPort
を実行するホストにマップされたポートとしてロードバランサーで使用できます。クラスタ全体で一意である必要があります。基本的にフローは次のようになります:インターネット-> <loadbalancer e.g. nginx, haproxy>:<servicePort>
-> <mesos agent on which container runs>:<hostPort>
-> <container>:<containerPort>
TargetPortこれは、リクエストが送信されるポッドのポートです。サービスが機能するには、アプリケーションがこのポートでネットワーク要求を待機している必要があります。これらのポートは通常、サービスyaml記述子で使用されます。