Bagikan melalui


Beroperasi dalam jaringan terkunci

Aplikasi CycleCloud dan node kluster dapat beroperasi di lingkungan dengan akses internet terbatas, meskipun ada sedikit jumlah port TCP yang harus tetap terbuka.

Menginstal Azure CycleCloud di jaringan yang dikunci

CycleCloud VM harus dapat terhubung ke sejumlah API Azure untuk mengatur VM kluster dan untuk mengautentikasi ke Azure Active Directory. Karena API ini menggunakan HTTPS, CycleCloud memerlukan akses HTTPS keluar ke:

  • 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 (Data Harga Azure)

API manajemen dihosting secara regional, dan rentang alamat IP publik dapat ditemukan di sini.

Login Azure AD adalah bagian dari API umum Microsoft 365 dan rentang alamat IP untuk layanan dapat ditemukan di sini.

Rentang alamat IP Azure Insights dan Analitik Log dapat ditemukan di sini.

Azure CycleCloud harus dapat mengakses akun Azure Storage. Cara yang disarankan untuk menyediakan akses privat ke layanan ini dan layanan Azure lain yang didukung adalah melalui titik akhir layanan Virtual Network.

Jika menggunakan Kelompok Keamanan Jaringan atau Azure Firewall untuk membatasi akses keluar ke domain yang diperlukan, maka dimungkinkan untuk mengonfigurasi Azure Cyclecloud untuk merutekan semua permintaan melalui proksi HTTPS. Lihat: Menggunakan Proksi Web

Mengonfigurasi Grup Keamanan Jaringan Azure untuk CycleCloud VM

Salah satu cara untuk membatasi akses internet keluar dari CycleCloud VM tanpa mengonfigurasi Azure Firewall atau proksi HTTPS adalah dengan mengonfigurasi Grup Keamanan Jaringan Azure yang ketat untuk subnet CycleCloud VM. Cara paling sederhana untuk melakukannya adalah dengan menggunakan Tag Layanan di tingkat subnet atau VM Network Security Group untuk mengizinkan akses Azure keluar yang diperlukan.

  1. Mengonfigurasi Titik Akhir Layanan Penyimpanan untuk Subnet untuk mengizinkan akses dari CycleCloud ke Azure Storage

  2. Tambahkan aturan Keluar NSG berikut untuk Menolak akses keluar secara default menggunakan Tag Layanan tujuan "Internet":

Prioritas Nama Port Protokol Sumber Tujuan Tindakan
4000 BlockOutbound Apa pun Apa pun Apa pun Internet Tolak
  1. Tambahkan aturan Keluar NSG berikut untuk Mengizinkan akses keluar ke layanan Azure yang diperlukan menurut Tag Layanan tujuan:
Prioritas Nama Port Protokol Sumber Tujuan Tindakan
100 AllowAzureStorage 443 TCP Apa pun Penyimpanan Izinkan
101 AllowActiveDirectory 443 TCP Apa pun AzureActiveDirectory Izinkan
102 AllowAzureMonitor 443 TCP Apa pun AzureMonitor Izinkan
103 AllowAzureRM 443 TCP Apa pun AzureResourceManager Izinkan

Komunikasi internal antara node kluster dan CycleCloud

Port ini harus terbuka untuk memungkinkan komunikasi antara node kluster dan server CycleCloud:

Nama Sumber Tujuan Layanan Protokol Rentang Port
amqp_5672 Node Kluster CycleCloud AMQP TCP 5672
https_9443 Node Kluster CycleCloud HTTPS TCP 9443

Meluncurkan kluster Azure CycleCloud dalam jaringan yang dikunci

Catatan

Menjalankan node kluster dalam subnet tanpa akses internet keluar didukung penuh saat ini, tetapi ini adalah topik lanjutan yang sering memerlukan gambar kustom atau kustomisasi jenis dan proyek kluster CycleCloud default atau keduanya.

Kami secara aktif memperbarui jenis kluster dan proyek untuk menghilangkan sebagian besar atau semua pekerjaan itu. Namun, jika Anda mengalami kegagalan dengan jenis kluster atau proyek di lingkungan Anda yang terkunci, harap pertimbangkan untuk membuka permintaan Dukungan untuk bantuan.

Menjalankan VM atau kluster Cyclecloud di jaringan virtual atau subnet dengan akses internet keluar umumnya memerlukan hal berikut:

  1. Azure Cyclecloud harus dapat dijangkau dari VM kluster untuk fungsionalitas penuh. Yaitu:
    1. VM kluster harus dapat terhubung ke Azure Cyclecloud secara langsung melalui HTTPS dan AMQP, atau
    2. Fitur Cyclecloud ReturnProxy harus diaktifkan pada waktu pembuatan kluster dan Cyclecloud itu sendiri harus dapat terhubung ke VM ReturnProxy melalui SSH
  2. Semua paket perangkat lunak yang diperlukan oleh kluster harus:
    1. Pra-instal dalam Gambar Terkelola kustom untuk VM kluster, atau
    2. Tersedia dalam cermin repositori paket yang dapat diakses dari VM, atau
    3. Disalin ke VM dari Azure Storage dan diinstal langsung oleh proyek Cyclecloud
  3. Semua node Kluster harus dapat mengakses akun Azure Storage. Cara yang disarankan untuk menyediakan akses privat ke layanan ini dan layanan Azure lain yang didukung adalah dengan mengaktifkan titik akhir layanan Virtual Network untuk Azure Storage.

Project Updates dari GitHub

Cyclecloud akan mengunduh proyek kluster dari GitHub selama fase orkestrasi "Penahapan". Unduhan ini akan terjadi setelah penginstalan awal, setelah meningkatkan Cyclecloud, atau saat memulai kluster jenis tertentu untuk pertama kalinya. Di lingkungan yang terkunci, lalu lintas keluar HTTPS ke github.com dapat diblokir. Dalam kasus seperti itu, pembuatan simpul selama fase sumber daya penahapan akan gagal.

Jika akses ke GitHub dapat dibuka sementara selama pembuatan simpul pertama, Maka CycleCloud akan menyiapkan file lokal untuk semua simpul berikutnya. Jika akses sementara tidak dimungkinkan maka file yang diperlukan dapat diunduh dari komputer lain dan disalin ke CycleCloud.

Pertama-tama tentukan proyek dan versi mana yang akan dibutuhkan kluster Anda, misalnya Slurm 2.5.0. Biasanya nomor versi tertinggi dalam database untuk proyek tertentu.

/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"

Versi proyek ini dan semua dependensi ditemukan di [tag rilis] (https://github.com/Azure/cyclecloud-slurm/releases/tag/2.5.0). Semua artefak untuk rilis harus diunduh. Pertama-tama unduh artefak kode dan buat direktori blob untuk dependensi tambahan.

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

Setelah file-file ini dipentaskan secara lokal Cyclecloud akan mendeteksinya dan tidak akan mencoba mengunduhnya dari GitHub.