Működés zárolt hálózaton

A CycleCloud alkalmazás és a fürtcsomópontok korlátozott internet-hozzáféréssel rendelkező környezetekben is működhetnek, bár minimális számú TCP-portnak nyitva kell maradnia.

Az Azure CycleCloud telepítése zárolt hálózaton

A CycleCloud virtuális gépnek képesnek kell lennie több Azure API-hoz csatlakozni a fürt virtuális gépeinek vezényléséhez és az Azure Active Directoryban való hitelesítéshez. Mivel ezek az API-k HTTPS-t használnak, a CycleCloudnak kimenő HTTPS-hozzáférésre van szüksége a következőkhöz:

  • management.azure.com (Azure ARM-felügyelet)
  • login.microsoftonline.com (Azure AD)
  • watson.telemetry.microsoft.com (Azure-telemetria)
  • dc.applicationinsights.azure.com (Azure-alkalmazás Insights)
  • dc.applicationinsights.microsoft.com (Azure-alkalmazás Insights)
  • dc.services.visualstudio.com (Azure-alkalmazás Insights)
  • ratecard.azure-api.net (Azure Price Data)

A felügyeleti API régiónként van üzemeltetve, és a nyilvános IP-címtartományok itt találhatók.

A Azure AD bejelentkezés a Szolgáltatáshoz tartozó Microsoft 365 gyakori API-k és IP-címtartományok részét képezi.

Az Azure Insights és a Log Analytics IP-címtartományai itt találhatók.

Az Azure CycleCloudnak hozzá kell tudnia férni az Azure Storage-fiókokhoz. A szolgáltatáshoz és más támogatott Azure-szolgáltatásokhoz való privát hozzáférés ajánlott módja Virtual Network szolgáltatásvégpontokon keresztül érhető el.

Ha hálózati biztonsági csoportokat vagy Azure Firewall használ a szükséges tartományokhoz való kimenő hozzáférés korlátozására, akkor az Azure Cyclecloud konfigurálható úgy, hogy az összes kérést EGY HTTPS-proxyn keresztül irányazhassa át. Lásd: Webproxy használata

Azure hálózati biztonsági csoport konfigurálása a CycleCloud virtuális géphez

A CycleCloud virtuális gépről érkező kimenő internet-hozzáférés korlátozásának egyik módja a Azure Firewall vagy EGY HTTPS-proxy konfigurálása nélkül, ha szigorú Azure hálózati biztonsági csoportot konfigurál a CycleCloud virtuális gép alhálózatához. Ennek legegyszerűbb módja a szolgáltatáscímkék használata az alhálózatban vagy virtuálisgép-szintű hálózati biztonsági csoportban a szükséges kimenő Azure-hozzáférés engedélyezéséhez.

  1. Storage-szolgáltatásvégpont konfigurálása az alhálózathoz a CycleCloudból az Azure Storage-ba való hozzáférés engedélyezéséhez

  2. Adja hozzá a következő NSG kimenő szabályt a kimenő hozzáférés megtagadásához alapértelmezés szerint az "Internet" célszolgáltatáscímkével:

Prioritás Name Port Protokoll Forrás Cél Művelet
4000 BlockOutbound Bármelyik Bármelyik Bármelyik Internet Megtagadás
  1. Adja hozzá a következő NSG kimenő szabályokat a szükséges Azure-szolgáltatásokhoz való kimenő hozzáférés engedélyezéséhez célszolgáltatáscímke alapján:
Prioritás Name Port Protokoll Forrás Cél Művelet
100 AllowAzureStorage 443 TCP Bármelyik Tárolás Engedélyezés
101 AllowActiveDirectory 443 TCP Bármelyik AzureActiveDirectory Engedélyezés
102 AllowAzureMonitor 443 TCP Bármelyik AzureMonitor Engedélyezés
103 AllowAzureRM 443 TCP Bármelyik AzureResourceManager Engedélyezés

Belső kommunikáció a fürtcsomópontok és a CycleCloud között

Ezeknek a portoknak nyitva kell lenniük a fürtcsomópontok és a CycleCloud-kiszolgáló közötti kommunikáció engedélyezéséhez:

Name Forrás Cél Szolgáltatás Protokoll Porttartomány
amqp_5672 Fürtcsomópont CycleCloud AMQP TCP 5672
https_9443 Fürtcsomópont CycleCloud HTTPS TCP 9443

Azure CycleCloud-fürtök indítása zárolt hálózaton

Megjegyzés

A fürtcsomópontok futtatása egy alhálózaton kimenő internet-hozzáférés nélkül jelenleg teljes mértékben támogatott, de ez egy speciális témakör, amelyhez gyakran egyéni rendszerképre vagy az alapértelmezett CycleCloud-fürttípusok és -projektek testreszabására van szükség, vagy mindkettőre.

Aktívan frissítjük a fürttípusokat és -projekteket, hogy a munka nagy részét vagy egészét kiküszöböljük. Ha azonban a zárolt környezetben a fürttípussal vagy -projekttel kapcsolatos hibák merülnek fel, fontolja meg egy támogatási kérés megnyitását.

Virtuális gépek vagy Cyclecloud-fürtök virtuális hálózaton vagy alhálózaton kimenő internet-hozzáféréssel történő futtatásához általában a következőkre van szükség:

  1. Az Azure Cyclecloudnak elérhetőnek kell lennie a fürt virtuális gépeiről a teljes funkcionalitás érdekében. Vagy:
    1. A fürt virtuális gépeinek közvetlenül HTTPS-en és AMQP-n keresztül kell tudniuk csatlakozni az Azure Cyclecloudhoz, vagy
    2. A Cyclecloud ReturnProxy funkciót engedélyezni kell a fürt létrehozásakor, és magának a Cyclecloudnak is képesnek kell lennie csatlakozni a ReturnProxy virtuális géphez SSH-n keresztül
  2. A fürt által igényelt összes szoftvercsomagnak a következőnek kell lennie:
    1. Előre telepítve egy egyéni felügyelt lemezképben a fürt virtuális gépeihez, vagy
    2. Elérhető a virtuális gépekről elérhető csomagtár-tükrözésben, vagy
    3. Átmásolva a virtuális gépre az Azure Storage-ból, és közvetlenül egy Cyclecloud-projekt telepíti
  3. Minden fürtcsomópontnak hozzá kell tudnia férni az Azure Storage-fiókokhoz. A szolgáltatáshoz és bármely más támogatott Azure-szolgáltatáshoz való privát hozzáférés biztosításának ajánlott módja egy Virtual Network Szolgáltatásvégpont engedélyezése az Azure Storage-hoz.

Project Frissítések a GitHubról

A Cyclecloud az előkészítési fázis során letölti a fürtprojekteket a GitHubról. Ez a letöltés a kezdeti telepítés után, a Cyclecloud frissítése után vagy egy bizonyos típusú fürt első indításakor történik. Zárolt környezetben előfordulhat, hogy az github.com felé irányuló HTTPS-kimenő forgalom le van tiltva. Ilyen esetben a csomópontok létrehozása az átmeneti erőforrások fázisában sikertelen lesz.

Ha a GitHubhoz való hozzáférés ideiglenesen megnyitható az első csomópont létrehozása során, akkor a CycleCloud előkészíti a helyi fájlokat az összes további csomóponthoz. Ha az ideiglenes hozzáférés nem lehetséges, akkor a szükséges fájlok letölthetők egy másik gépről, és átmásolhatók a CycleCloudba.

Először határozza meg, hogy a fürtnek milyen projektre és verzióra lesz szüksége, például a Slurm 2.5.0-s verziójára. Általában ez a legmagasabb verziószám egy adott projekt adatbázisában.

/opt/cycle_server/cycle_server execute 'select * from cloud.project where name == "slurm"'

AdType = "Cloud.Project"
Version = "2.5.0"
ProjectType = "scheduler"
Url = "https://github.com/Azure/cyclecloud-slurm/releases/2.5.0"
AutoUpgrade = false
Name = "slurm"

Ez a projektverzió és az összes függőség a [kiadási címke] (https://github.com/Azure/cyclecloud-slurm/releases/tag/2.5.0) alatt található. Egy kiadás összes összetevőjéhez le kell tölteni. Először töltse le a kódösszetevőt, és hozzon létre egy blobkönyvtárat a további függőségekhez.

wget https://github.com/Azure/cyclecloud-slurm/archive/refs/tags/2.5.0.tar.gz
tar -xf 2.5.0.tar.gz 
cd cyclecloud-slurm-2.5.0 && mkdir blobs 
#... download all other release artifacts to the /blobs directory with wget ...
wget -P "blobs/" https://github.com/Azure/cyclecloud-slurm/releases/download/2.6.1/cyclecloud_api-8.1.0-py2.py3-none-any.whl
#... copy all the files to the Cyclecloud server
#... then on the Cyclecloud server:
cyclecloud project build
mkdir -p /opt/cycle_server/work/staging/projects/slurm/2.5.0
mkdir -p /opt/cycle_server/work/staging/projects/slurm/blobs
cp build/slurm/* /opt/cycle_server/work/staging/projects/slurm/2.5.0/
cp blobs/* /opt/cycle_server/work/staging/projects/slurm/blobs/
chown -R cycle_server:cycle_server /opt/cycle_server/work/staging

Miután ezeket a fájlokat helyileg előkészítette, a Cyclecloud észleli őket, és nem próbálja meg letölteni őket a GitHubról.