Search code examples
azureazure-virtual-machinemarathondcosazure-container-service

Application in ACS (DCOS) on any other port except 80


How can I host an application in ACS (DCOS) on any other port except 80? Can I give any other URL instead of using port number to access?

{
 "id": "/dockercloud-hello-world",
 "cmd": null,
 "cpus": 0.1,
 "mem": 128,
 "disk": 0,
 "instances": 2,
 "acceptedResourceRoles": [
   "*"
 ],
 "container": {
   "type": "DOCKER",
   "volumes": [],
   "docker": {
     "image": "dockercloud/hello-world",
     "network": "BRIDGE",
     "portMappings": [
       {
         "containerPort": 80,
         "hostPort": 0,
         "servicePort": 10000,
         "protocol": "tcp",
         "labels": {}
       }
     ],
     "privileged": false,
     "parameters": [],
     "forcePullImage": true
   }
 },

 "portDefinitions": [
   {
     "port": 10000,
     "protocol": "tcp",
     "name": "default",
     "labels": {}
   }
 ]
}

Application is available on port 4170 according to Marathon.

I am unable to access from agents fqn:portnumber


Solution

  • Yes, it is possible.

    Firstly, you need modify hostPort value to 4170 and acceptedResourceRoles to slave_public.

    Then you need open port 4170 on agent node NSG.

    enter image description here

    Then you also need open port on agent node LB.

    1.Add Health probes

    enter image description here

    2.Load balancing rules

    enter image description here

    More information about this please check this link.