(ELAVULT) DC/OS-tárolókezelés a Marathon REST API-n keresztül

Figyelmeztetés

Az Azure Container Service (ACS) elavult. Az ACS-hez nem adnak hozzá új szolgáltatásokat vagy funkciókat. Az összes API, portálélmény, CLI-parancs és dokumentáció elavultként van megjelölve.

További információkért tekintse meg az Azure Container Service elavulással kapcsolatos bejelentését a Azure.com.

Javasoljuk, hogy telepítse az alábbi Azure Marketplace megoldások egyikét:

Ha a Kubernetes-t szeretné használni, tekintse meg a Azure Kubernetes Service.

A DC/OS biztosítja a fürtözött feladatok telepítését és skálázását lehetővé tevő környezetet, ugyanakkor absztrakciós rétegként működik a hardver fölött. A DC/OS fölötti keretrendszer gondoskodik a számítási feladatok ütemezéséről és végrehajtásáról. Bár a keretrendszerek számos népszerű számítási feladathoz elérhetők, ez a dokumentum segít a tárolótelepítések létrehozásában és méretezésében a Marathon REST API használatával.

Előfeltételek

A példákban szereplő feladatok elvégzéséhez szüksége lesz egy az Azure tárolószolgáltatásban konfigurált DC/OS-fürtre, valamint távoli kapcsolatot kell tudnia létesíteni a fürttel. Ezekkel az elemekkel kapcsolatban a következő cikkekben talál további tájékoztatást:

Hozzáférés a DC/OS API-khoz

Miután csatlakozott az Azure Container Service-fürthöz, a DC/OS-t és a kapcsolódó REST API-kat a következőn keresztül érheti el: http://localhost:local-port. Az ebben a dokumentumban szereplő példák azt feltételezik, hogy az alagutat a 80-as porton keresztül hozta létre. A Marathon-végpontok például az URI-któl kezdve érhetőek el http://localhost/marathon/v2/.

A Marathon API-ról és a Chronos API-ról a Mesosphere dokumentációjában, a Mesos Scheduler API-ról pedig az Apache dokumentációjában talál további információt.

Információgyűjtés a DC/OS-ről és a Marathonról

Mielőtt tárolókat helyezne üzembe a DC/OS-fürtön, gyűjtsön össze néhány információt a DC/OS-fürtről, például a DC/OS-ügynökök nevét és állapotát. Ehhez kérdezze le a DC/OS REST API fő- és alárendelt kiszolgálóinak (master/slaves) végpontját. Ha minden megfelelően működik, a lekérdezés a DC/OS-ügynökök listáját és az ügynökök különböző tulajdonságait adja vissza.

curl https://localhost/mesos/master/slaves

A DC/OS-fürtben üzembe helyezett alkalmazások lekérdezéséhez használja a Marathon /apps végpontot. Ha ez egy új fürt, akkor az alkalmazásoknál egy üres tömb jelenik meg.

curl localhost/marathon/v2/apps

{"apps":[]}

Docker-formátumú tároló üzembe helyezése

Docker-formátumú tárolókat a Marathon REST API-n keresztül helyezhet üzembe egy JSON-fájllal, amely leírja a kívánt üzembe helyezést. Az alábbi minta egy Nginx-tárolót helyez üzembe a fürt egy privát ügynökében.

{
  "id": "nginx",
  "cpus": 0.1,
  "mem": 32.0,
  "instances": 1,
  "container": {
    "type": "DOCKER",
    "docker": {
      "image": "nginx",
      "network": "BRIDGE",
      "portMappings": [
        { "containerPort": 80, "servicePort": 9000, "protocol": "tcp" }
      ]
    }
  }
}

Docker-formátumú tároló üzembe helyezéséhez tárolja a JSON-fájlt egy elérhető helyen. Ezt követően a tároló üzembe helyezéséhez futtassa az alábbi parancsot. Adja meg a JSON-fájl nevét (marathon.json ebben a példában).

curl -X POST https://localhost/marathon/v2/apps -d @marathon.json -H "Content-type: application/json"

A kimenet a következő példához hasonló:

{"version":"2015-11-20T18:59:00.494Z","deploymentId":"b12f8a73-f56a-4eb1-9375-4ac026d6cdec"}

Ha ezt követően lekérdezi az alkalmazásokat a Marathonban, az eredmények között megjelenik az új alkalmazás is.

curl localhost/marathon/v2/apps

A tároló elérése

Ellenőrizheti, hogy az Nginx egy tárolóban fut-e a fürt egyik privát ügynökén. A tárolót futtató gazdagép és port megkereséséhez kérdezze le a Marathont a futó feladatokhoz:

curl localhost/marathon/v2/tasks

Keresse meg a kimenet értékét host (az IP-cím hasonló 10.32.0.x), és az értékét ports.

Most hozzon létre egy SSH-terminálkapcsolatot (nem bújtatott kapcsolatot) a fürt felügyeleti teljes tartománynevével. A csatlakozás után hajtsa végre a következő kérést, és helyettesítse hostportsbe a megfelelő értékeket:

curl http://host:ports

Az Nginx-kiszolgáló kimenete a következőhöz hasonló:

Nginx from container

A tárolók skálázása

A Marathon API-val felskálázhatja vagy skálázhatja az alkalmazástelepítéseket. Az előző példában üzembe helyezett egy alkalmazáspéldányt. Ezt most skálázhatja három alkalmazáspéldányra. Ehhez hozzon létre egy JSON-fájlt az alábbi JSON-szöveg használatával, és tárolja elérhető helyen.

{ "instances": 3 }

Futtassa az alábbi parancsot az bújtatott kapcsolaton keresztül az alkalmazás felskálázásához.

Megjegyzés

Az URI-t a http://localhost/marathon/v2/apps/ skálázandó alkalmazás azonosítója követi. Ha az itt megadott Nginx-mintát használja, az URI a következő lesz: http://localhost/marathon/v2/apps/nginx.

curl https://localhost/marathon/v2/apps/nginx -H "Content-type: application/json" -X PUT -d @scale.json

Végül kérdezze le az alkalmazásokat a Marathon végponton. Láthatja majd, hogy most már három Nginx-tároló létezik.

curl localhost/marathon/v2/apps

Egyenértékű PowerShell-parancsok

Ugyanezeket a műveleteket elvégezheti Windows rendszerben is a PowerShell-parancsok használatával.

A DC/OS-fürt adatainak, például az ügynökneveknek és az ügynök állapotának gyűjtéséhez futtassa a következő parancsot:

Invoke-WebRequest -Uri https://localhost/mesos/master/slaves

A Docker-formátumú tárolók Marathon segítségével való üzembe helyezéséhez egy olyan JSON-fájlt kell használnia, amelyben megadhatja a kívánt üzembe helyezéssel kapcsolatos információkat. Az alábbi példában, amely egy Nginx-tároló üzembe helyezését szemlélteti, a DC/OS-ügynök 80-as portja a tároló 80-as portjával van összekötve.

{
  "id": "nginx",
  "cpus": 0.1,
  "mem": 32.0,
  "instances": 1,
  "container": {
    "type": "DOCKER",
    "docker": {
      "image": "nginx",
      "network": "BRIDGE",
      "portMappings": [
        { "containerPort": 80, "servicePort": 9000, "protocol": "tcp" }
      ]
    }
  }
}

Docker-formátumú tároló üzembe helyezéséhez tárolja a JSON-fájlt egy elérhető helyen. Ezt követően a tároló üzembe helyezéséhez futtassa az alábbi parancsot. Adja meg a JSON-fájl elérési útját (marathon.json ebben a példában).

Invoke-WebRequest -Method Post -Uri https://localhost/marathon/v2/apps -ContentType application/json -InFile 'c:\marathon.json'

A Marathon API-t az üzemelő alkalmazáspéldányok horizontális skálázására is használhatja. Az előző példában üzembe helyezett egy alkalmazáspéldányt. Ezt most skálázhatja három alkalmazáspéldányra. Ehhez hozzon létre egy JSON-fájlt az alábbi JSON-szöveg használatával, és tárolja elérhető helyen.

{ "instances": 3 }

Futtassa a következő parancsot az alkalmazás vertikális felskálázásához:

Megjegyzés

Az URI-t a http://localhost/marathon/v2/apps/ skálázandó alkalmazás azonosítója követi. Ha az itt megadott Nginx-mintát használja, az URI a következő lesz: http://localhost/marathon/v2/apps/nginx.

Invoke-WebRequest -Method Put -Uri https://localhost/marathon/v2/apps/nginx -ContentType application/json -InFile 'c:\scale.json'

Következő lépések