Aracılığıyla paylaş


Jet çantası

Kümenin her düğümünde Jetpack gerekir. Azure CycleCloud, bir kümede düğüm olmak için sağladığınız her sanal makineye jetpack'i otomatik olarak yükler. Jetpack üç ana işlev sağlar:

  • Düğüm Yapılandırması - CycleCloud, sağlanan vm'nin çalışma kümesi düğümünde yapılandırmasını otomatikleştirmek için betikleri ve Chef'i kullanır. Chef istemcisi ve VM yapılandırması için gerekli kaynaklar Jetpack'e eklenir.
  • Dağıtılmış Eşitleme - Jetpack, düğüm ile CycleCloud uygulama sunucusu arasındaki iletişimi yönetir. Bu yönetim, CycleCloud'un sağlama VM'lerinin durumunu izlemesine ve kümedeki birden çok düğümün düzenlemesini eşitlemesine olanak tanır.
  • HealthCheck - Jetpack, iyi durumda olmayan VM'leri sonlandırabilmesi için VM'lerin sistem durumunu belirlemek için HealthCheck kullanır.

Jetpack Yüklemesi

CycleCloud kullanarak bir kümeyi ilk kez başlattığınızda Jetpack yükleyicisi Azure Depolama Hesabınızda önbelleğe alınır. Küme VM'leri hazırlandıkça, önyükleme işlemi sırasında özel bir betik uzantısı yürütülür. Bu uzantı, Jetpack yükleyicisini Azure Depolama önbelleğinizden indirir ve vm'ye yükler.

Jetpack yükleyicisi:

  • Jetpack dosyalarını tek bir dizin ağacına çıkarır.
    • Windows: C:\cycle\jetpack
    • Linux: /opt/cycle/Jetpack
  • Sistemi VM'yi küme düğümü olarak yapılandıran başlangıç betikleri oluşturur.
  • HealthCheck hizmetini yükler
  • Jetpack Komut Satırı Aracı'nı şu şekilde yükler:
    • Windows: C:\cycle\jetpack\bin\jetpack
    • Linux: /opt/cycle/jetpack/bin/jetpack
  • Linux'ta udev kuralları oluşturur
  • Ortam değişkenini ayarlar CYCLECLOUD_HOME

Uyarı

Jetpack görüntüye önceden yüklenmişse özel betik uzantısı Jetpack'i yeniden yüklemez . Bunun yerine, düğümün CycleCloud bağlantısını doğrulayan bir başlatma adımı çalıştırır ve önce healthcheck ve jetpackd hizmetlerini başlatır, sonra düğümü yapılandırmaya devam eder.

Jetpack Alt Dizinleri

Dizin Açıklama
bin Yararlı ikili dosyalar ve betikler.
config Kullanıcı tanımlı ve küme tanımlı yapılandırma dosyaları ve betikleri.
logs Bir kümeye katılarak ve düğümü birleştirerek oluşturulan günlükler. Özellikle ilgi çeken, Chef tariflerinin birleştirilme sonuçlarını içeren chef-client.log dosyasıdır.
run Sistem tarafından oluşturulan çalışma zamanı dosyaları. Bu dosyalara doğrudan erişmenizi önermeyiz.
system İç dosyalar. Bu dizindeki hiçbir dosyayı doğrudan kullanmanızı önermiyoruz çünkü bunlar sürümden sürüme önemli ölçüde değişebilir.

Sağlık Kontrolü

HealthCheck hizmeti, bir VM'nin küme düğümü olarak geçerli kullanılabilirliğini belirlemek için kullanıcı tanımlı betikleri yürütür. Daha fazla bilgi için HealthCheck belgelerine bakın.

Jetpack Komut Satırı Aracı

Jetpack komut satırı aracı, geçerli VM'yi işlemek ve Azure CycleCloud ile etkileşim kurmak için kullanışlı bir alt komut kümesi sağlar.

Komut Açıklama
jetpack autoscale Bu düğümün ait olduğu kümeyi otomatik olarak ölçekleyin.
jetpack config Bir yapılandırma değeri alın.
jetpack converge Chef ile sistem yakınsaması gerçekleştirin.
jetpack download Azure Depolama'daki bir projeden blob kaynağı indirin.
jetpack keepalive HealthCheck Hizmeti tarafından sistem sonlandırmayı geciktirme.
jetpack log CycleCloud kümesi kullanıcı arabiriminde bir ileti günlüğe kaydetme.
jetpack run_on_shutdown Düğüm sonlandırmadan önce çağrılacak bir betik ekleyin.
jetpack send CycleCloud sunucusuna rastgele bir AMQP iletisi gönderin.
jetpack shutdown CycleCloud tarafından VM'nin kapatılmasını isteyin.
jetpack test VM'ye atanan projelerle ilişkili testleri çalıştırın.
jetpack users CycleCloud'un bu VM'de yönettiği kullanıcıları listeleyin.
jetpack report_issue VM'deki log dosyalarını Azure Depolama'ya arşivler

jetpack otomatik ölçeklendirme

Düğümün ait olduğu küme için otomatik ölçeklendirme hedeflerini ayarlamak için kullanın jetpack autoscale . Kümeleri çekirdeklere, örnek sayısına veya özel tanımlara göre ölçeklendikleyebilirsiniz.

100 çekirdeğe ölçeklendirmek için:

jetpack autoscale --corecount=100

'gpu' nodearray'sini beş düğüme ölçeklendirmek için:

jetpack autoscale --instancecount 5 --name=gpu

Otomatik ölçeklendirmeyi özelleştirmek için, diske ölçeklendirmek istediğiniz nodearray tanımını içeren bir JSON dosyası yazın. 100 çekirdeğe göre ölçeklendirmek için:

[
  {
      "Name": "execute",
      "TargetCoreCount": 100
  }
]
jetpack autoscale --file=custom-autoscale.json

jetpack yapılandırması

CycleCloud'un vm'ye geçirdiği bilgileri getirmek için kullanın jetpack config . Şu durum ortaya çıkar:

  • Ohai aracılığıyla sağlanan tüm sistem özellikleri
  • VM'nin Azure meta verilerinin bir alt kümesi
  • ana CycleCloud kümesi hakkında bilgi.

jetpack birleşme

jetpack converge komutu düğümle ilişkili tüm CycleCloud projelerini indirir ve düğüm için tüm Chef tariflerini ve cluster-init betiklerini çalıştıran bir Chef yakınsama işlemi başlatır.

jetpack indirme

jetpack download komutu, bir projeyle düğüme yüklediğiniz blobu indirir. Blob'un ait olduğu projeyi belirtmeniz gerekir.

example-project projesinin bir parçası olarak yüklediğiniz blob big-file.zip'ı geçerli dizine indirmek için:

jetpack download --project example-project big-file.zip .

jetpack devamlı bağlantı

jetpack keepalive komutu, başarısız bir HealthCheck nedeniyle VM'nin sonlandırılmasına gecikmek için HealthCheck hizmetiyle etkileşim kurar. Gecikmeyi sabit bir süreye veya süresiz olarak ayarlayabilirsiniz. Varsayılan olarak, komut sonlandırmayı bir saat geciktirmektedir.

Sistem sonlandırmayı bir saat geciktirmek için:

jetpack keepalive

Sistem sonlandırmayı altı saat geciktirmek için:

jetpack keepalive 6h

HealthCheck hizmetini tamamen devre dışı bırakmak, yani sonlandırmayı süresiz olarak geciktirmek için:

jetpack keepalive forever

Uyarı

Windows VM'lerinde forever HealthCheck için yalnızca bu seçenek kullanılabilir.

jetpack günlüğü

jetpack log CycleCloud'a geri bir günlük iletisi gönderir. İleti, uygulama sunucusu günlüğünde (genellikle /opt/cycle_server/cycle_server.log), ana olay günlüğünde ve Küme kullanıcı arabirimi sayfasında görünür.

Her iletinin iki özelliği vardır: level ve priority.

level özelliği ileti türünü gösterir. Geçerli düzeyler : info, warnve error. Düzey, belirli bir iletinin önemini göstermez. Örneğin, bazı hatalar önemsizdir ve bazı bilgilendirme iletileri kritik önem taşır.

Öncelik, iletinin önemini gösterir. Geçerli öncelik değerleri 'düşük', 'orta' ve 'yüksek' değerleridir. Sayfayı düşük öncelikli iletilerle dolup taşmasını önlemek için Küme Kullanıcı Arabirimi sayfasında yalnızca orta veya daha yüksek önceliğe sahip iletiler görüntülenir.

Küme kullanıcı arabirimi sayfasında görünen bir bilgi günlüğü iletisi göndermek için:

jetpack log 'system is now ready'

Küme kullanıcı arabirimi sayfasında görünmesini istemediğiniz düşük öncelikli bir günlük iletisi göndermek için:

jetpack log 'system is now ready' --priority low

Varsayılan olarak, hata düzeyine sahip iletiler yüksek önceliğe sahiptir. Hata iletisi göndermek için:

jetpack log 'the machine cannot process jobs' --level error

Önemsiz bir hata iletisi göndermek için:

jetpack log 'the machine cannot process jobs' --level error --priority low

jetpack çalıştır_kapanışta

Komut, jetpack run_on_shutdown düğüm sonlandırmadan önce çağrı yapmak için bir bash betiği kaydeder.

komutu betiğin mutlak yolunu bağımsız değişken olarak alır.

Azure düğümü sonlandırdığında ve Sonlandırma Bildirimleri etkinleştirildiğinde Jetpack sonlandırma bildirimi alır. Düğüm kapanmadan önce betiği çalıştırmayı dener.

Düğümlerin,Sonlandırma Bildirimleri'ni etkinleştirmesirun_on_shutdownetkinleştirmek için gerekir.

jetpack run_on_shutdown /tmp/example.sh

Bu komut Windows düğümleri için desteklenmez.

jetpack gönder

jetpack send CycleCloud'a bir AMQP iletisi gönderir. CycleCloud için eklenti geliştirmediğiniz sürece önermediğimiz gelişmiş bir komut.

Belirtilen AMQP yönlendirme anahtarlarıyla rastgele dizeler veya dosyalar gönderebilirsiniz.

jetpack kapatma işlemi

CycleCloud'un düğümü sonlandırmasını istemek için kullanın jetpack shutdown . Kapatma isteğinin nedenini (boşta veya sağlıksız) ve düğümün nasıl sonlandırılacağını (sonlandırma veya serbest bırakma) belirtmek için komuta seçenekleri geçirebilirsiniz.

İyi durumda olmayan bir düğümü kapatmak için aşağıdaki komutu kullanın:

jetpack shutdown --unhealthy

Düğümü serbest bırakmak için:

jetpack shutdown --deallocate

jetpack testi

jetpack test kullanın, düğüme atanan projelere dahil edilen herhangi bir testi çalıştırmak için. komutu sonuçları stdout'a yazdırır.

jetpack kullanıcıları

jetpack users CycleCloud'un düğümde yönettiği kullanıcıları listeler. Kullanıcılar kümeye atanıp kaldırıldıkçe bu liste zaman içinde değişebilir.

Düğüme atanan kullanıcıların kullanıcı dostu bir çıktısını almak için:

$ jetpack users

Username: test-user
Full Name: Test User
UID: 10201
Is Admin: True
Is Owner: True

Betik kullanımı kolay JSON çıktısı almak için:

$ jetpack users --json

[
    {
        "fullName": "Test User",
        "isAdmin": true,
        "isOwner": true,
        "name": "test-user",
        "publicKeys": [
            "ssh-rsa public-key-goes-here\n"
        ],
        "uid": 10201
    }
]

jetpack sorun bildir

jetpack report_issue günlük dizinlerini VM'den arşivleyerek isteğe bağlı olarak Azure Depolama'ya yükler ve dış erişim için imzalı bir URL oluşturur. Komut, düğümdeki Locker tarafından başvurulan Azure Depolama hesabına günlükleri yükler. Azure Depolama'da bir arşiv imzaladığınızda, sonuçta elde edilen SAS belirtecinin 30 gün boyunca salt okunur erişimi olur.

Kullanım:

$ jetpack report_issue [LOG_PATH] [--upload/--no-upload] [--sign/--no-sign]

Varsayılan Jetpack günlüklerini ($JETPACK_HOME/logs) arşivleyip karşıya yüklemek ve imzalamak için:

$ jetpack report_issue
Logs can be found at: https://testaccount.blob.core.windows.net/cyclecloud/issues/TestCluster-execute-1-77777964-8b74-420d-ad44-094edf7695f2.zip?sv=2017-11-09&rsct=binary&sig=jBJUlYo10lRq0eW94I%2B6syzYVmgo1qcTFUc35D/q0Tg%3D&se=2020-12-04T15%3A15%3A00Z&spr=https&rscd=disposition%3Dfile%3B%20attachment&sp=r&sr=b
Signed URL will expire on: 2020-12-04T15:15:00Z

Varsayılan olmayan bir günlük dizinini arşivlemek ve karşıya yüklemek, ancak imzalamamak için:

$ jetpack report_issue /var/log/azure --no-sign
Logs can be found at: https://testaccount.blob.core.windows.net/cyclecloud/issues/TestCluster-execute-1-d67fe991-1dac-4644-9af7-50c835726f5e.zip

Yerel VM'de günlükleri arşivle:

$ jetpack report_issue --no-upload
Logs can be found at: /tmp/tmp4nscw705/TestCluster-execute-1-4249e973-3d87-4b14-94ed-6856a5267972.zip