(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:
- Mesosphere DC/OS
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 host
ports
be a megfelelő értékeket:
curl http://host:ports
Az Nginx-kiszolgáló kimenete a következőhöz hasonló:
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'