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.
Mengonfigurasi Titik Akhir Layanan Penyimpanan untuk Subnet untuk mengizinkan akses dari CycleCloud ke Azure Storage
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 |
- 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:
- Azure Cyclecloud harus dapat dijangkau dari VM kluster untuk fungsionalitas penuh. Yaitu:
- VM kluster harus dapat terhubung ke Azure Cyclecloud secara langsung melalui HTTPS dan AMQP, atau
- Fitur Cyclecloud ReturnProxy harus diaktifkan pada waktu pembuatan kluster dan Cyclecloud itu sendiri harus dapat terhubung ke VM ReturnProxy melalui SSH
- Semua paket perangkat lunak yang diperlukan oleh kluster harus:
- Pra-instal dalam Gambar Terkelola kustom untuk VM kluster, atau
- Tersedia dalam cermin repositori paket yang dapat diakses dari VM, atau
- Disalin ke VM dari Azure Storage dan diinstal langsung oleh proyek Cyclecloud
- 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.