Sdílet prostřednictvím


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.

  1. Konfigurace koncového bodu služby úložiště pro podsíť pro povolení přístupu z CycleCloudu do Azure Storage

  2. 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
  1. 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í:

  1. Azure Cyclecloud musí být dostupný z virtuálních počítačů clusteru, aby byly plně funkční. Jednu z těchto možností:
    1. Virtuální počítače clusteru musí být schopné se připojit k Azure Cyclecloudu přímo přes HTTPS a AMQP nebo
    2. 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.
  2. Všechny softwarové balíčky vyžadované clusterem musí být:
    1. Předinstalovaná ve vlastní spravované imagi pro virtuální počítače clusteru nebo
    2. Dostupné v zrcadle úložiště balíčků přístupném z virtuálních počítačů nebo
    3. Zkopírováno do virtuálního počítače ze služby Azure Storage a nainstalované přímo projektem Cyclecloud
  3. 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.