Provoz v uzamčené síti
Aplikace CycleCloud a uzly clusteru můžou fungovat v prostředích s omezeným přístupem k internetu, i když existuje minimální počet portů TCP, které musí zůstat otevřené.
Instalace Azure CycleCloudu v uzamčené síti
K orchestraci virtuálních počítačů clusteru a k ověřování v Azure Active Directory musí být virtuální počítač CycleCloud schopný připojit se k řadě rozhraní API Azure. Vzhledem k tomu, že tato rozhraní API používají protokol HTTPS, vyžaduje CycleCloud odchozí přístup HTTPS k těmto:
- management.azure.com (Správa Azure ARM)
- login.microsoftonline.com (Azure AD)
- watson.telemetry.microsoft.com (Telemetrie Azure)
- dc.applicationinsights.azure.com (Aplikace Azure Insights)
- dc.applicationinsights.microsoft.com (Aplikace Azure Insights)
- dc.services.visualstudio.com (Aplikace Azure Insights)
- ratecard.azure-api.net (Data cen Azure)
Rozhraní API pro správu je hostované částečně a rozsahy veřejných IP adres najdete tady.
Přihlášení Azure AD je součástí běžných rozhraní API Microsoftu 365 a rozsahů IP adres pro tuto službu.
Rozsahy IP adres Azure Insights a Log Analytics najdete tady.
Azure CycleCloud musí mít přístup k účtům Azure Storage. Doporučený způsob poskytování privátního přístupu k této službě a jakékoli jiné podporované služby Azure je prostřednictvím koncových bodů služby Virtual Network.
Pokud používáte skupiny zabezpečení sítě nebo Azure Firewall k omezení odchozího přístupu k požadovaným doménám, je možné nakonfigurovat Azure Cyclecloud tak, aby směrovat všechny požadavky prostřednictvím proxy serveru HTTPS. Viz: Použití webového proxy serveru
Konfigurace skupiny zabezpečení sítě Azure pro virtuální počítač CycleCloud
Jedním ze způsobů, jak omezit odchozí přístup k internetu z virtuálního počítače CycleCloud bez konfigurace Azure Firewall nebo proxy serveru HTTPS, je nakonfigurovat striktní skupinu zabezpečení sítě Azure pro podsíť virtuálního počítače CycleCloud. Nejjednodušším způsobem je použít značky služeb v podsíti nebo skupině zabezpečení sítě na úrovni virtuálního počítače, aby bylo možné povolit požadovaný odchozí přístup k Azure.
Konfigurace koncového bodu služby úložiště pro podsíť pro povolení přístupu z CycleCloudu do Azure Storage
Přidejte následující pravidlo odchozí pošty NSG, které ve výchozím nastavení zakáže odchozí přístup pomocí značky cílové služby "Internet":
Priorita | Název | Port | Protokol | Zdroj | Cíl | Akce |
---|---|---|---|---|---|---|
4000 | BlockOutbound | Všechny | Všechny | Všechny | Internet | Odepřít |
- Přidejte následující pravidla odchozích skupin zabezpečení sítě pro povolení odchozího přístupu k požadovaným službám Azure podle cílové značky služby:
Priorita | Název | Port | Protokol | Zdroj | Cíl | Akce |
---|---|---|---|---|---|---|
100 | AllowAzureStorage | 443 | TCP | Všechny | Storage | Povolit |
101 | AllowActiveDirectory | 443 | TCP | Všechny | AzureActiveDirectory | Povolit |
102 | AllowAzureMonitor | 443 | TCP | Všechny | AzureMonitor | Povolit |
103 | AllowAzureRM | 443 | TCP | Všechny | AzureResourceManager | Povolit |
Interní komunikace mezi uzly clusteru a CycleCloudem
Tyto porty musí být otevřené, aby umožňovaly komunikaci mezi uzly clusteru a serverem CycleCloud:
Název | Zdroj | Cíl | Služba | Protokol | Rozsah portů |
---|---|---|---|---|---|
amqp_5672 | Uzel clusteru | CycleCloud | AMQP | TCP | 5672 |
https_9443 | Uzel clusteru | CycleCloud | HTTPS | TCP | 9443 |
Spouštění clusterů Azure CycleCloud v uzamčené síti
Poznámka
Spouštění uzlů clusteru v podsíti bez odchozího přístupu k internetu je dnes plně podporováno, ale jedná se o pokročilé téma, které často vyžaduje vlastní image nebo přizpůsobení výchozích typů clusterů CycleCloud a projektů nebo obojího.
Aktivně aktualizujeme typy clusterů a projekty, abychom odstranili většinu nebo všechny tyto práce. Pokud ale dojde k selhání s typem clusteru nebo projektem v uzamčeném prostředí, zvažte otevření žádosti o pomoc.
Spouštění virtuálních počítačů nebo clusterů Cyclecloud ve virtuální síti nebo podsíti s odchozím přístupem k internetu obecně vyžaduje následující:
- Azure Cyclecloud musí být dostupný z virtuálních počítačů clusteru, aby byly plně funkční. Jednu z těchto možností:
- Virtuální počítače clusteru musí být schopné se připojit k Azure Cyclecloudu přímo přes HTTPS a AMQP nebo
- Funkce ReturnProxy Cyclecloud musí být povolena při vytváření clusteru a samotný Cyclecloud se musí být schopen připojit k virtuálnímu počítači ReturnProxy přes SSH.
- Všechny softwarové balíčky vyžadované clusterem musí být:
- Předinstalovaná ve vlastní spravované imagi pro virtuální počítače clusteru nebo
- Dostupné v zrcadle úložiště balíčků přístupném z virtuálních počítačů nebo
- Zkopírováno do virtuálního počítače ze služby Azure Storage a nainstalované přímo projektem Cyclecloud
- Všechny uzly clusteru musí mít přístup k účtům Azure Storage. Doporučeným způsobem, jak poskytnout privátní přístup k této službě a jakákoli jiná podporovaná služba Azure, je povolit koncový bod služby Virtual Network pro Službu Azure Storage.
Project Aktualizace z GitHubu
Cyclecloud stáhne projekty clusteru z GitHubu během fáze orchestrace "Příprava". K tomuto stažení dojde po počáteční instalaci, po upgradu Cyclecloudu nebo při prvním spuštění clusteru určitého typu. V uzamčeném prostředí může být zablokovaný odchozí provoz HTTPS do github.com . V takovém případě se vytvoření uzlu během fáze přípravných prostředků nezdaří.
Pokud je možné během vytváření prvního uzlu dočasně otevřít přístup k GitHubu, pak CycleCloud připraví místní soubory pro všechny další uzly. Pokud dočasný přístup není možný, je možné stáhnout potřebné soubory z jiného počítače a zkopírovat je do CycleCloudu.
Nejprve určete, který projekt a verzi clusteru bude potřebovat, například Slurm 2.5.0. Obvykle se jedná o nejvyšší číslo verze v databázi daného projektu.
/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"
Tato verze projektu a všechny závislosti jsou nalezeny v [značku vydané verze] (https://github.com/Azure/cyclecloud-slurm/releases/tag/2.5.0). Všechny artefakty pro vydání musí být staženy. Nejprve stáhněte artefakt kódu a vytvořte adresář objektů blob pro další závislosti.
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
Jakmile budou tyto soubory fázované místně Cyclecloud, zjistí je a nepokouší se je stáhnout z GitHubu.