Jetpack
Pakiet Jetpack jest wymagany w każdym węźle klastra. Jest on automatycznie instalowany przez usługę Azure CycleCloud na każdej aprowizowanej maszynie wirtualnej, aby stać się węzłem w klastrze. Jetpack oferuje trzy główne funkcje:
- Konfiguracja węzła — usługa CycleCloud używa skryptów i programu Chef do automatyzacji konfiguracji aprowizowanej maszyny wirtualnej w węźle klastra roboczego. Klient chef, a także niezbędne zasoby do konfiguracji maszyny wirtualnej są osadzone w usłudze Jetpack.
- Synchronizacja rozproszona — Jetpack zarządza komunikacją między węzłem a serwerem aplikacji CycleCloud. Dzięki temu usługa CycleCloud może monitorować stan aprowizujących maszyn wirtualnych i synchronizować aranżację wielu węzłów w klastrze.
- HealthCheck — Jetpack używa narzędzia HealthCheck w celu określenia kondycji maszyn wirtualnych, aby można było zakończyć działanie maszyn wirtualnych w złej kondycji.
Instalacja jetpack
Instalator Jetpack jest buforowany na koncie usługi Azure Storage po pierwszym uruchomieniu klastra przy użyciu usługi CycleCloud. W miarę aprowizowania maszyn wirtualnych klastra niestandardowe rozszerzenie skryptu jest wykonywane w ramach procesu rozruchu, który pobiera instalator Jetpack z pamięci podręcznej usługi Azure Storage, a następnie instaluje go na maszynie wirtualnej.
Instalator Jetpack:
- Rozpakowuje pliki Jetpack do pojedynczego drzewa katalogów:
- Windows: C:\cycle\jetpack
- Linux: /opt/cycle/Jetpack
- Tworzy skrypty uruchamiania inicjatora systemu, które konfigurują maszynę wirtualną jako węzeł klastra
- Instaluje usługę HealthCheck
- Instaluje narzędzie wiersza polecenia Jetpack w celu:
- Windows: C:\cycle\jetpack\bin\jetpack
- Linux: /opt/cycle/jetpack/bin/jetpack
- Tworzy reguły udev w systemie Linux
- Ustawia zmienną środowiskową
CYCLECLOUD_HOME
Uwaga
Jeśli pakiet Jetpack został wstępnie zainstalowany na obrazie, rozszerzenie niestandardowego skryptu nie zainstaluje ponownie pakietu Jetpack. Zamiast tego zostanie uruchomiony krok inicjowania, który zweryfikuje połączenie węzła z usługą CycleCloud i uruchomi healthcheck
usługi i jetpackd
przed kontynuowaniem konfigurowania węzła.
Podkatalogi Jetpack
Directory | Opis |
---|---|
bin |
Przydatne pliki binarne i skrypty. |
config |
Zdefiniowane przez użytkownika i pliki konfiguracji zdefiniowane przez klaster oraz skrypty. |
logs |
Dzienniki generowane przez dołączenie do klastra i konwergentne węzły są chef-client.log , które zawierają wyniki z zbieżnych przepisów chef. |
run |
Pliki środowiska uruchomieniowego generowane przez system. Nie zalecamy bezpośredniego uzyskiwania dostępu do tych plików. |
system |
Pliki wewnętrzne. Nie zalecamy bezpośredniego używania żadnych plików w tym katalogu, ponieważ mogą one znacząco zmienić się z wydania na wydanie. |
Sprawdzanie kondycji
Usługa HealthCheck wykonuje skrypty zdefiniowane przez użytkownika w celu określenia bieżącej rentowności maszyny wirtualnej jako węzła klastra. Aby uzyskać więcej informacji, zobacz dokumentację HealthCheck .
Narzędzie wiersza polecenia Jetpack
Narzędzie wiersza polecenia Jetpack udostępnia przydatny zestaw poleceń podrzędnych do manipulowania bieżącą maszyną wirtualną i interakcji z usługą Azure CycleCloud.
Polecenie | Opis |
---|---|
jetpack autoscale |
Autoskaluj klaster, do którego należy ten węzeł. |
jetpack config |
Pobieranie wartości konfiguracji. |
jetpack converge |
Wykonaj zbieżne polecenie Chef. |
jetpack download |
Pobierz zasób obiektu blob z projektu w usłudze Azure Storage. |
jetpack keepalive |
Opóźnienie zakończenia systemu przez usługę HealthCheck Service. |
jetpack log |
Rejestrowanie komunikatu w interfejsie użytkownika klastra CycleCloud. |
jetpack run_on_shutdown |
Dodaj skrypt, który ma być wywoływany przed kończeniem węzła. |
jetpack send |
Wyślij dowolny komunikat AMQP do serwera CycleCloud. |
jetpack shutdown |
Zażądaj zamknięcia maszyny wirtualnej według usługi CycleCloud. |
jetpack test |
Uruchom testy skojarzone z projektami przypisanymi do maszyny wirtualnej. |
jetpack users |
Wyświetl listę użytkowników, którymi będzie zarządzać usługa CycleCloud na tej maszynie wirtualnej. |
jetpack report_issue |
Archiwizowanie plików dziennika z maszyny wirtualnej do usługi Azure Storage |
autoskalowywanie jetpack
jetpack autoscale
Ustawia obiekty docelowe skalowania automatycznego dla klastra, do którego należy węzeł. Klastry można skalować według rdzeni, liczby wystąpień lub definicji niestandardowych.
Aby skalować do 100 rdzeni:
jetpack autoscale --corecount=100
Aby przeskalować element nodearray "gpu" do 5 węzłów:
jetpack autoscale --instancecount 5 --name=gpu
Aby dostosować autoskalowanie, plik json musi być zapisany na dysku zawierający definicję nodearray, którą chcesz skalować. Aby skalować o 100 rdzeni:
[
{
"Name": "execute",
"TargetCoreCount": 100
}
]
jetpack autoscale --file=custom-autoscale.json
jetpack config
jetpack config
Pobiera informacje przekazywane do maszyny wirtualnej przez CycleCloud. Uwidacznia:
- wszystkie właściwości systemowe udostępnione za pośrednictwem Ohai
- podzestaw metadanych platformy Azure maszyny wirtualnej
- informacje o nadrzędnym klastrze CycleCloud.
jetpack zbiegają się
jetpack converge
pobiera wszystkie projekty CycleCloud skojarzone z węzłem i uruchamia proces zbieżnego programu Chef, który uruchamia wszystkie przepisy programu Chef i skrypty inicjowania klastra dla węzła.
pobieranie pakietu jetpack
jetpack download
pobiera obiekt blob przekazany z projektem do węzła. Należy określić projekt, do którego należy obiekt blob.
Aby pobrać big-file.zip obiektów blob przekazanych w ramach projektu do bieżącego example-project
katalogu:
jetpack download --project example-project big-file.zip .
jetpack keepalive
jetpack keepalive
współdziała z usługą HealthCheck, aby opóźnić zakończenie maszyny wirtualnej z powodu niepowodzenia kontroli kondycji. Zakończenie może być opóźnione przez określony okres lub na czas nieokreślony. Domyślnie zakończenie jest opóźnione przez jedną godzinę.
Aby opóźnić zakończenie systemu o jedną godzinę:
jetpack keepalive
Aby opóźnić zakończenie systemu o sześć godzin:
jetpack keepalive 6h
Aby całkowicie wyłączyć usługę HealthCheck, tj. opóźnienie zakończenia na czas nieokreślony:
jetpack keepalive forever
Uwaga
forever
Tylko opcja jest dostępna dla opcji HealthCheck na maszynach wirtualnych z systemem Windows
dziennik jetpack
jetpack log
wysyła komunikat dziennika z powrotem do usługi CycleCloud. Komunikat pojawi się w dzienniku serwera aplikacji (zazwyczaj /opt/cycle_server/cycle_server.log), głównym dzienniku zdarzeń i stronie Interfejs użytkownika klastra.
Każdy komunikat ma dwie właściwości: poziom i priorytet.
Właściwość level wskazuje typ komunikatu. Prawidłowe poziomy to "info", "warn" i "error". Poziom nie wskazuje znaczenia danego komunikatu — na przykład niektóre błędy są proste i niektóre komunikaty informacyjne krytyczne.
Priorytet wskazuje znaczenie komunikatu. Prawidłowe wartości priorytetu to "niski", "średni" i "wysoki". Na stronie interfejsu użytkownika klastra są wyświetlane tylko komunikaty o priorytcie lub wyższym, aby uniknąć powodzi strony z komunikatami o niskim priorytcie.
Aby wysłać komunikat dziennika informacyjnego, który będzie wyświetlany na stronie interfejsu użytkownika klastra:
jetpack log 'system is now ready'
Aby wysłać komunikat dziennika o niskim priorytcie, który nie ma być wyświetlany na stronie Interfejs użytkownika klastra:
jetpack log 'system is now ready' --priority low
Domyślnie komunikaty o poziomie błędu mają wysoki priorytet. Aby wysłać komunikat o błędzie:
jetpack log 'the machine cannot process jobs' --level error
Aby wysłać trywialny komunikat o błędzie:
jetpack log 'the machine cannot process jobs' --level error --priority low
jetpack run_on_shutdown
jetpack run_on_shutdown
rejestruje skrypt powłoki bash, który ma być wywoływany przed kończeniem węzła.
Polecenie przyjmuje ścieżkę bezwzględną do skryptu jako argument.
Po zakończeniu działania węzła przez platformę Azure, jeśli powiadomienia o zakończeniu są włączone, pakiet Jetpack zostanie powiadomiony o zakończeniu działania skryptu i próbie uruchomienia skryptu przed zamknięciem węzła.
Węzły muszą włączyć powiadomienia o zakończeniu , aby włączyć run_on_shutdown
.
jetpack run_on_shutdown /tmp/example.sh
To polecenie nie jest obsługiwane w przypadku węzłów systemu Windows.
jetpack send
jetpack send
wysyła komunikat AMQP do usługi CycleCloud. Jest to zaawansowane polecenie, które nie jest zalecane, chyba że tworzysz wtyczki dla usługi CycleCloud.
Możesz wysyłać dowolne ciągi lub pliki z określonymi kluczami routingu amQP.
zamknięcie jetpack
jetpack shutdown
żąda, aby usługa CycleCloud zakończyła węzeł. Opcje można przekazać do polecenia, aby określić przyczynę żądania zamknięcia (bezczynności i złej kondycji), a także jak zakończyć węzeł (zakończ a cofnij przydział).
Aby zamknąć węzeł w złej kondycji:
jetpack shutdown --unhealthy
Aby cofnąć przydział węzła:
jetpack shutdown --deallocate
test jetpack
jetpack test
uruchamia wszystkie testy dołączone do projektów przypisanych do węzła i wyświetla wyniki do stdout.
użytkownicy jetpack
jetpack users
wyświetla listę użytkowników, którymi będzie zarządzać usługa CycleCloud w węźle. Ta lista może zmieniać się wraz z upływem czasu, gdy użytkownicy są przypisywani i usuwani z klastra.
Aby uzyskać przyjazny dla użytkownika wydruk dla użytkowników przypisanych do węzła:
$ jetpack users
Username: test-user
Full Name: Test User
UID: 10201
Is Admin: True
Is Owner: True
Aby uzyskać dane wyjściowe JSON przyjazne dla skryptów:
$ jetpack users --json
[
{
"fullName": "Test User",
"isAdmin": true,
"isOwner": true,
"name": "test-user",
"publicKeys": [
"ssh-rsa public-key-goes-here\n"
],
"uid": 10201
}
]
report_issue jetpack
jetpack report_issue
archiwa rejestruje katalogi z maszyny wirtualnej, opcjonalnie przekazując je do usługi Azure Storage i tworząc podpisany adres URL na potrzeby dostępu zewnętrznego. Dzienniki zostaną przekazane do konta usługi Azure Storage, do których odwołuje się funkcja Locker węzła. Podczas podpisywania archiwum w usłudze Azure Storage wynikowy token SAS będzie miał dostęp tylko do odczytu przez 30 dni.
Użycie:
$ jetpack report_issue [LOG_PATH] [--upload/--no-upload] [--sign/--no-sign]
Aby zarchiwizować, przekaż i podpisać domyślne dzienniki Jetpack ($JETPACK_HOME/logs):
$ 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
Aby zarchiwizować, przekaż, ale nie podpisz domyślnego katalogu dziennika:
$ 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
Aby po prostu zarchiwizować dzienniki na lokalnej maszynie wirtualnej:
$ jetpack report_issue --no-upload
Logs can be found at: /tmp/tmp4nscw705/TestCluster-execute-1-4249e973-3d87-4b14-94ed-6856a5267972.zip