Share via


Kilitli bir ağda çalışma

CycleCloud uygulaması ve küme düğümleri, İnternet erişimi sınırlı ortamlarda çalışabilir, ancak açık kalması gereken çok az sayıda TCP bağlantı noktası vardır.

Azure CycleCloud'u kilitli bir ağa yükleme

CycleCloud VM'sinin küme VM'lerini yönetmek ve Azure Active Directory'de kimlik doğrulaması yapmak için bir dizi Azure API'sine bağlanabilmesi gerekir. Bu API'ler HTTPS kullandığından, CycleCloud aşağıdakiler için giden HTTPS erişimi gerektirir:

  • management.azure.com (Azure ARM Yönetimi)
  • login.microsoftonline.com (Azure AD)
  • watson.telemetry.microsoft.com (Azure Telemetrisi)
  • dc.applicationinsights.azure.com (Azure Uygulaması İçgörüler)
  • dc.applicationinsights.microsoft.com (Azure Uygulaması İçgörüler)
  • dc.services.visualstudio.com (Azure Uygulaması İçgörüler)
  • ratecard.azure-api.net (Azure Fiyat Verileri)

Yönetim API'si bölgesel olarak barındırılır ve genel IP adresi aralıkları burada bulunabilir.

Azure AD oturum açma bilgileri Microsoft 365 ortak API'lerinin bir parçasıdır ve hizmetin IP adresi aralıkları burada bulunabilir.

Azure Insights ve Log Analytics IP adresi aralıkları burada bulunabilir.

Azure CycleCloud'un Azure Depolama hesaplarına erişebilmesi gerekir. Bu hizmete ve desteklenen diğer Azure hizmetine özel erişim sağlamanın önerilen yolu Sanal Ağ Hizmet Uç Noktaları'dır.

Giden erişimi gerekli etki alanlarına sınırlamak için Ağ Güvenlik Grupları veya Azure Güvenlik Duvarı kullanıyorsanız, Azure Cyclecloud'u tüm istekleri bir HTTPS ara sunucusu üzerinden yönlendirecek şekilde yapılandırmak mümkündür. Bkz. Web Proxy'si kullanma

CycleCloud VM için Azure Ağ Güvenlik Grubu yapılandırma

Azure Güvenlik Duvarı veya HTTPS ara sunucusunu yapılandırmadan CycleCloud VM'den giden İnternet erişimini sınırlamanın bir yolu, CycleCloud VM'nin alt ağı için katı bir Azure Ağ Güvenlik Grubu yapılandırmaktır. Bunu yapmanın en basit yolu, gerekli giden Azure erişimine izin vermek için alt ağda veya VM düzeyinde Ağ Güvenlik Grubu'ndaHizmet Etiketlerini kullanmaktır.

  1. CycleCloud'dan Azure Depolama'ya erişime izin vermek için Alt Ağ için bir Depolama Hizmeti Uç Noktası yapılandırma

  2. "İnternet" hedef Hizmet Etiketini kullanarak giden erişimi varsayılan olarak reddet'e aşağıdaki NSG Giden kuralını ekleyin:

Öncelik Name Bağlantı noktası Protokol Kaynak Hedef Eylem
4000 BlockOutbound Herhangi biri Herhangi biri Herhangi biri İnternet Reddet
  1. Aşağıdaki NSG Giden kurallarını Hedef Hizmet Etiketine göre gerekli Azure hizmetlerine giden erişime izin ver'e ekleyin:
Öncelik Name Bağlantı noktası Protokol Kaynak Hedef Eylem
100 AllowAzureStorage 443 TCP Herhangi biri Depolama İzin Ver
101 AllowActiveDirectory 443 TCP Herhangi biri AzureActiveDirectory İzin Ver
102 AllowAzureMonitor 443 TCP Herhangi biri AzureMonitor İzin Ver
103 İzin VerAzureRM 443 TCP Herhangi biri AzureResourceManager İzin Ver

Küme düğümleri ile CycleCloud arasındaki iç iletişimler

Küme düğümleri ile CycleCloud sunucusu arasında iletişime izin vermek için bu bağlantı noktalarının açık olması gerekir:

Name Kaynak Hedef Hizmet Protokol Bağlantı Noktası Aralığı
amqp_5672 Küme Düğümü CycleCloud AMQP TCP 5672
https_9443 Küme Düğümü CycleCloud HTTPS TCP 9443

Kilitli bir ağda Azure CycleCloud kümelerini başlatma

Not

Bir alt ağda giden İnternet erişimi olmadan küme düğümlerinin çalıştırılması bugün tam olarak desteklenir, ancak genellikle özel bir görüntü veya varsayılan CycleCloud küme türlerinin ve projelerinin veya her ikisinin de özelleştirilmesini gerektiren gelişmiş bir konudur.

Bu işin çoğunu veya tümünü ortadan kaldırmak için küme türlerini ve projelerini etkin bir şekilde güncelleştiriyoruz. Ancak, kilitli ortamınızda küme türünüzde veya projenizde hatalarla karşılaşırsanız lütfen yardım için bir Destek isteği açmayı göz önünde bulundurun.

Sanal ağda veya giden İnternet erişimine sahip alt ağda VM'lerin veya Cyclecloud kümelerinin çalıştırılması genellikle aşağıdakileri gerektirir:

  1. Tam işlevsellik için Azure Cyclecloud'a küme VM'lerinden erişilebilir olması gerekir. Şunlardan biri:
    1. Küme VM'lerinin HTTPS ve AMQP aracılığıyla doğrudan Azure Cyclecloud'a bağlanabilmesi veya
    2. Cyclecloud ReturnProxy özelliğinin küme oluşturma zamanında etkinleştirilmesi ve Cyclecloud'un SSH aracılığıyla ReturnProxy VM'ye bağlanabilmesi gerekir
  2. Küme için gereken tüm yazılım paketleri şu durumlardan biri olmalıdır:
    1. Küme VM'leri için özel yönetilen görüntüye önceden yüklenmiş veya
    2. VM'lerden erişilebilen bir paket deposu yansıtmasında kullanılabilir veya
    3. Azure Depolama'dan VM'ye kopyalanır ve doğrudan bir Cyclecloud projesi tarafından yüklenir
  3. Tüm Küme düğümlerinin Azure Depolama hesaplarına erişebilmesi gerekir. Bu hizmete ve desteklenen diğer Azure hizmetine özel erişim sağlamanın önerilen yolu, Azure Depolama için Sanal Ağ Hizmet Uç Noktasını etkinleştirmektir.

GitHub'dan Project Güncelleştirmeler

Cyclecloud, "Hazırlama" düzenleme aşamasında GitHub'dan küme projelerini indirir. Bu indirme, ilk yüklemeden sonra, Cyclecloud yükseltildikten sonra veya belirli bir türdeki bir küme ilk kez başlatılırken gerçekleşir. Kilitli bir ortamda, github.com GIDEN HTTPS trafiği engellenebilir. Böyle bir durumda, hazırlama kaynakları aşaması sırasında düğüm oluşturma başarısız olur.

GitHub'a erişim ilk düğümün oluşturulması sırasında geçici olarak açılabilirse CycleCloud yerel dosyaları sonraki tüm düğümler için hazırlar. Geçici erişim mümkün değilse, gerekli dosyalar başka bir makineden indirilebilir ve CycleCloud'a kopyalanabilir.

İlk olarak kümenizin hangi projeye ve sürüme ihtiyacı olacağını belirleyin, örneğin Slurm 2.5.0. Normalde belirli bir proje için veritabanındaki en yüksek sürüm numarasıdır.

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

Bu proje sürümü ve tüm bağımlılıklar [release tag] ()https://github.com/Azure/cyclecloud-slurm/releases/tag/2.5.0 içinde bulunur. Bir yayın için tüm yapıtların indirilmesi gerekir. İlk olarak kod yapıtını indirin ve ek bağımlılıklar için bir blobs dizini oluşturun.

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

Bu dosyalar yerel olarak hazırlandıktan sonra Cyclecloud bunları algılar ve GitHub'dan indirmeyi denemez.