Arbeta i ett låst nätverk
CycleCloud-programmet och klusternoderna kan användas i miljöer med begränsad Internetåtkomst, även om det finns ett minimalt antal TCP-portar som måste vara öppna.
Installera Azure CycleCloud i ett låst nätverk
Den virtuella CycleCloud-datorn måste kunna ansluta till ett antal Azure-API:er för att samordna virtuella klusterdatorer och autentisera till Azure Active Directory. Eftersom dessa API:er använder HTTPS kräver CycleCloud utgående HTTPS-åtkomst till:
- management.azure.com (Azure ARM Management)
- login.microsoftonline.com (Azure AD)
- watson.telemetry.microsoft.com (Azure Telemetry)
- dc.applicationinsights.azure.com (Azure Application Insights)
- dc.applicationinsights.microsoft.com (Azure Application Insights)
- dc.services.visualstudio.com (Azure Application Insights)
- ratecard.azure-api.net (Prisdata för Azure)
Hanterings-API:et finns regionalt och de offentliga IP-adressintervallen finns här.
Den Azure AD inloggningen är en del av Microsoft 365 vanliga API:er och IP-adressintervall för tjänsten finns här.
Ip-adressintervallen för Azure Insights och Log Analytics finns här.
Azure CycleCloud måste kunna komma åt Azure Storage-konton. Det rekommenderade sättet att ge privat åtkomst till den här tjänsten och andra Azure-tjänster som stöds är via Virtual Network tjänstslutpunkter.
Om du använder nätverkssäkerhetsgrupper eller Azure Firewall för att begränsa utgående åtkomst till de domäner som krävs är det möjligt att konfigurera Azure Cyclecloud för att dirigera alla begäranden via en HTTPS-proxy. Se: Använda en webbproxy
Konfigurera en Azure-nätverkssäkerhetsgrupp för den virtuella CycleCloud-datorn
Ett sätt att begränsa utgående Internetåtkomst från den virtuella CycleCloud-datorn utan att konfigurera Azure Firewall eller en HTTPS-proxy är att konfigurera en strikt Azure-nätverkssäkerhetsgrupp för den virtuella CycleCloud-datorns undernät. Det enklaste sättet att göra det är att använda tjänsttaggar i undernätet eller nätverkssäkerhetsgruppen på VM-nivå för att tillåta nödvändig utgående Azure-åtkomst.
Konfigurera en lagringstjänstslutpunkt för undernätet för att tillåta åtkomst från CycleCloud till Azure Storage
Lägg till följande utgående NSG-regel för att neka utgående åtkomst som standard med hjälp av måltjänsttaggen "Internet":
Prioritet | Namn | Port | Protokoll | Källa | Mål | Action |
---|---|---|---|---|---|---|
4000 | BlockOutbound | Valfri | Valfri | Valfri | Internet | Neka |
- Lägg till följande regler för utgående NSG i Tillåt utgående åtkomst till nödvändiga Azure-tjänster efter måltjänsttagg:
Prioritet | Namn | Port | Protokoll | Källa | Mål | Action |
---|---|---|---|---|---|---|
100 | AllowAzureStorage | 443 | TCP | Valfri | Storage | Tillåt |
101 | AllowActiveDirectory | 443 | TCP | Valfri | AzureActiveDirectory | Tillåt |
102 | AllowAzureMonitor | 443 | TCP | Valfri | AzureMonitor | Tillåt |
103 | TillåtAzureRM | 443 | TCP | Valfri | AzureResourceManager | Tillåt |
Intern kommunikation mellan klusternoder och CycleCloud
Dessa portar måste vara öppna för att möjliggöra kommunikation mellan klusternoderna och CycleCloud-servern:
Namn | Källa | Mål | Tjänst | Protokoll | Portintervall |
---|---|---|---|---|---|
amqp_5672 | Klusternod | CycleCloud | AMQP | TCP | 5672 |
https_9443 | Klusternod | CycleCloud | HTTPS | TCP | 9443 |
Starta Azure CycleCloud-kluster i ett låst nätverk
Anteckning
Att köra klusternoder i ett undernät utan utgående Internetåtkomst stöds i dag fullt ut, men det är ett avancerat ämne som ofta kräver antingen en anpassad avbildning eller anpassning av standardtyperna för CycleCloud-kluster och -projekt eller båda.
Vi uppdaterar aktivt klustertyperna och projekten för att eliminera det mesta eller allt det arbetet. Men om du stöter på fel med klustertypen eller projektet i den låsta miljön bör du överväga att öppna en supportbegäran för att få hjälp.
Att köra virtuella datorer eller Cyclecloud-kluster i ett virtuellt nätverk eller undernät med utgående Internetåtkomst kräver vanligtvis följande:
- Azure Cyclecloud måste kunna nås från klustrets virtuella datorer för att få fullständig funktionalitet. Antingen:
- Virtuella klusterdatorer måste kunna ansluta till Azure Cyclecloud direkt via HTTPS och AMQP, eller
- Funktionen Cyclecloud ReturnProxy måste vara aktiverad när klustret skapas och själva Cyclecloud måste kunna ansluta till den virtuella Datorn ReturnProxy via SSH
- Alla programvarupaket som krävs av klustret måste vara:
- Förinstallerad i en anpassad hanterad avbildning för klustrets virtuella datorer, eller
- Tillgänglig i en paketlagringsplatsspegling som är tillgänglig från de virtuella datorerna, eller
- Kopierades till den virtuella datorn från Azure Storage och installerades direkt av ett Cyclecloud-projekt
- Alla klusternoder måste kunna komma åt Azure Storage-konton. Det rekommenderade sättet att ge privat åtkomst till den här tjänsten och andra Azure-tjänster som stöds är att aktivera en Virtual Network-tjänstslutpunkt för Azure Storage.
Project Uppdateringar från GitHub
Cyclecloud laddar ned klusterprojekt från GitHub under orkestreringsfasen "Mellanlagring". Den här nedladdningen sker efter den första installationen, efter uppgraderingen av Cyclecloud eller när du startar ett kluster av en viss typ för första gången. I en låst miljö kan utgående HTTPS-trafik till github.com blockeras. I sådana fall misslyckas skapande av noder under mellanlagringsresursfasen.
Om åtkomst till GitHub kan öppnas tillfälligt när den första noden skapas förbereder CycleCloud de lokala filerna för alla efterföljande noder. Om tillfällig åtkomst inte är möjlig kan de nödvändiga filerna laddas ned från en annan dator och kopieras till CycleCloud.
Bestäm först vilket projekt och vilken version klustret behöver, t.ex. Slurm 2.5.0. Det är vanligtvis det högsta versionsnumret i databasen för ett visst projekt.
/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"
Den här projektversionen och alla beroenden finns i [versionstaggen] (https://github.com/Azure/cyclecloud-slurm/releases/tag/2.5.0). Alla artefakter för en version måste laddas ned. Ladda först ned kodartefakten och skapa en blobkatalog för de ytterligare beroendena.
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
När dessa filer har mellanlagrats lokalt identifierar Cyclecloud dem och försöker inte ladda ned dem från GitHub.