Jetpack
Jetpack bir kümenin her düğümünde gereklidir. Azure CycleCloud tarafından bir kümede düğüm olmak üzere sağlanan her sanal makineye otomatik olarak yüklenir. Jetpack üç ana işlev sağlar:
- Düğüm Yapılandırması -- CycleCloud, sağlanan vm'nin yapılandırmasını çalışan bir küme düğümüne otomatikleştirmek için betikleri ve Chef'i kullanır. Chef istemcisinin yanı sıra VM'nin 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, 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'lerin sonlandırılabilmesi 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 sağlandıkça, Jetpack yükleyicisini Azure Depolama önbelleğinizden indirip vm'ye yükleyen önyükleme işleminin bir parçası olarak özel bir betik uzantısı yürütülür.
Jetpack yükleyicisi:
- Jetpack dosyalarını tek bir dizin ağacına açar:
- Windows: C:\cycle\jetpack
- Linux: /opt/cycle/Jetpack
- Vm'yi küme düğümü olarak yapılandıran sistem başlatma 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
Not
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 ve düğümü yapılandırmaya devam etmeden önce ve jetpackd
hizmetlerini başlatan healthcheck
bir başlatma adımı çalıştırılır.
Jetpack Alt Dizinleri
Directory | Description |
---|---|
bin |
Yararlı ikili dosyalar ve betikler. |
config |
Kullanıcı tanımlı ve küme tanımlı yapılandırma dosyaları ve betikleri. |
logs |
Küme birleştirilerek ve düğümün yakınsanarak oluşturulan günlükler, özellikle ilgi çekici olan, yakınsanan Chef tariflerinin sonuçlarını içeren chef-client.log . |
run |
Sistem tarafından oluşturulan çalışma zamanı dosyaları. Bu dosyalara doğrudan erişmenizi önermiyoruz. |
system |
İç dosyalar. Yayından yayına önemli ölçüde değişebilecekleri için bu dizindeki hiçbir dosyayı doğrudan kullanmanızı önermeyiz. |
HealthCheck
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 lütfen 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 ölçeklendirme. |
jetpack config |
Bir yapılandırma değeri alın. |
jetpack converge |
Chef yakınsama gerçekleştirin. |
jetpack download |
Azure Depolama'daki bir projeden blob kaynağı indirin. |
jetpack keepalive |
Sistem sonlandırmayı HealthCheck Hizmeti tarafından geciktirin. |
jetpack log |
CycleCloud kümesi kullanıcı arabirimine 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öneteceği kullanıcıları listeleyin. |
jetpack report_issue |
Günlük dosyalarını VM'den Azure Depolama'ya arşivler |
jetpack otomatik ölçeklendirme
jetpack autoscale
düğümün ait olduğu küme için otomatik ölçeklendirme hedeflerini ayarlar. Kümeler çekirdeklere, örnek sayısı veya özel tanımlara göre ölçeklendirilebilir.
100 çekirdeğe ölçeklendirmek için:
jetpack autoscale --corecount=100
'gpu' nodearray'sini 5 düğüme ölçeklendirmek için:
jetpack autoscale --instancecount 5 --name=gpu
Otomatik ölçeklendirmeyi özelleştirmek için, ölçeklendirmek istediğiniz nodearray tanımını içeren bir json dosyasının diske yazılması gerekir. 100 çekirdeğe göre ölçeklendirmek için:
[
{
"Name": "execute",
"TargetCoreCount": 100
}
]
jetpack autoscale --file=custom-autoscale.json
jetpack yapılandırması
jetpack config
CycleCloud tarafından vm'ye geçirilen bilgileri getirir. Bu, şu işlemleri ortaya çıkarır:
- Ohai aracılığıyla sağlanan tüm sistem özellikleri
- VM'nin Azure meta verilerinin bir alt kümesi
- üst CycleCloud kümesi hakkında bilgi.
jetpack yakınsama
jetpack converge
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
düğüme projeyle birlikte yüklenen bir blobu indirir. Blob'un ait olduğu projeyi belirtmeniz gerekir.
Projenin bir parçası example-project
olarak geçerli dizine yüklenen blob big-file.zip indirmek için:
jetpack download --project example-project big-file.zip .
jetpack keepalive
jetpack keepalive
başarısız bir HealthCheck nedeniyle VM'nin sonlandırılmasına gecikmek için HealthCheck hizmetiyle etkileşim kurar. Sonlandırma sabit bir süre veya süresiz olarak geciktirilebilir. Varsayılan olarak sonlandırma bir saat geciktirilir.
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 için, yani sonlandırmayı süresiz olarak geciktirmek için:
jetpack keepalive forever
Not
Windows VM'lerinde forever
HealthCheck için yalnızca seçeneği kullanılabilir
jetpack günlüğü
jetpack log
CycleCloud'a 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: düzey ve öncelik.
level özelliği iletinin türünü gösterir. Geçerli düzeyler 'bilgi', 'uyar' ve 'hata'dır. Düzey, belirli bir iletinin önemini göstermez; örneğin, bazı hatalar önemsizdir ve bazı bilgilendirme iletileri kritiktir.
Öncelik, iletinin önemini gösterir. Geçerli öncelik değerleri 'düşük', 'orta' ve 'yüksek' değerleridir. Sayfayı düşük öncelikli iletilerle dolması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ünecek 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 run_on_shutdown
jetpack run_on_shutdown
düğüm sonlandırmadan önce çağrılmak üzere bir bash betiği kaydeder.
komut, betiğin mutlak yolunu bağımsız değişken olarak alır.
Düğüm Azure tarafından sonlandırıldığında Sonlandırma Bildirimleri etkinleştirilirse, Jetpack sonlandırma hakkında bilgilendirilir ve düğüm kapanmadan önce betiği çalıştırmayı dener.
Düğümlerin etkinleştirmek için Sonlandırma Bildirimlerini etkinleştirmesirun_on_shutdown
gerekir.
jetpack run_on_shutdown /tmp/example.sh
Bu komut Windows düğümleri için desteklenmez.
jetpack gönderme
jetpack send
CycleCloud'a bir AMQP iletisi gönderir. CycleCloud için eklenti geliştirmediğiniz sürece önerilmez gelişmiş bir komutdur.
Belirtilen AMQP yönlendirme anahtarlarına sahip rastgele dizeler veya dosyalar gönderebilirsiniz.
jetpack kapatma
jetpack shutdown
CycleCloud'un düğümü sonlandırmasını istemektedir. Kapatma isteğinin nedenini (boşta ve iyi durumda değil) belirtmenin yanı sıra düğümün nasıl sonlandırılacağını (terminate vs deallocate) belirtmek için komuta seçenekler geçirilebilir.
İyi durumda olmayan bir düğümü kapatmak için:
jetpack shutdown --unhealthy
Düğümü serbest bırakmak için:
jetpack shutdown --deallocate
jetpack testi
jetpack test
düğüme atanan projelere dahil edilen tüm testleri çalıştırır ve sonuçları stdout'a yazdırır.
jetpack kullanıcıları
jetpack users
, CycleCloud'un düğümde yöneteceğ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 çıkışı 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 report_issue
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. Günlükler düğümün Locker tarafından başvuruda bulunılan Azure Depolama hesabına yüklenir. Azure Depolama'da bir arşivi imzalarken 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]
Arşiv için varsayılan Jetpack günlüklerini ($JETPACK_HOME/logs) karşıya yükleyin ve imzalayın:
$ 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
Arşiv için, varsayılan olmayan bir günlük dizinini karşıya yükleyin ancak imzalayın:
$ 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
Günlükleri yerel VM'de arşivleyebilmek için:
$ jetpack report_issue --no-upload
Logs can be found at: /tmp/tmp4nscw705/TestCluster-execute-1-4249e973-3d87-4b14-94ed-6856a5267972.zip