Udostępnij przez


Jetpack

Potrzebny jest pakiet Jetpack w każdym węźle klastra. Usługa Azure CycleCloud automatycznie instaluje pakiet Jetpack na każdej maszynie wirtualnej, którą aprowizujesz, 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 programu Chef i niezbędne zasoby do konfiguracji maszyny wirtualnej są osadzone w usłudze Jetpack.
  • Synchronizacja rozproszona — pakiet Jetpack zarządza komunikacją między węzłem a serwerem aplikacji CycleCloud. To zarządzanie umożliwia usłudze CycleCloud monitorowanie stanu aprowizowania maszyn wirtualnych i synchronizowanie aranżacji wielu węzłów w klastrze.
  • HealthCheck — pakiet Jetpack używa narzędzia HealthCheck do określenia kondycji maszyn wirtualnych, aby usunąć te w złej kondycji.

Instalacja Jetpack

Instalator Jetpack jest buforowany w Twoim koncie Azure Storage, gdy po raz pierwszy uruchamiasz klaster za pomocą CycleCloud. Podczas aprowizowania maszyn wirtualnych w klastrze, niestandardowe rozszerzenie skryptu jest uruchamiane jako część procesu rozruchu. To rozszerzenie 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 inicjowania systemu, które konfigurują maszynę wirtualną jako węzeł klastra
  • Instaluje usługę HealthCheck
  • Instalacja narzędzia wiersza poleceń Jetpack w celu:
    • Windows: C:\cycle\jetpack\bin\jetpack
    • Linux: /opt/cycle/jetpack/bin/jetpack
  • Tworzy zasady udev w systemie Linux
  • Ustawia zmienną środowiskową CYCLECLOUD_HOME

Uwaga

Jeśli pakiet Jetpack jest wstępnie zainstalowany na obrazie, rozszerzenie niestandardowego skryptu nie instaluje ponownie pakietu Jetpack. Zamiast tego uruchamia krok inicjalizacyjny, który weryfikuje połączenie węzła z CycleCloud i uruchamia usługi healthcheck i jetpackd przed kontynuacją konfigurowania węzła.

Jetpack Podkatalogi

Katalog Opis
bin Przydatne binaria i skrypty.
config Zdefiniowane przez użytkownika i zdefiniowane przez klaster pliki konfiguracji i skrypty.
logs Dzienniki generowane podczas dołączenia do klastra i konwergencji węzła. Szczególnie interesujący jest jetpack.log, który zawiera wyniki procesu zbieżności.
run Pliki wykonywane w czasie działania generowane przez system. Nie zalecamy bezpośredniego dostępu do tych plików.
system Pliki wewnętrzne. Nie zalecamy bezpośredniego używania plików w tym katalogu, ponieważ mogą one znacznie zmieniać się pomiędzy kolejnymi wersjami.

Sprawdzanie kondycji

Usługa HealthCheck wykonuje skrypty zdefiniowane przez użytkownika w celu określenia obecnej przydatności VM jako węzła klastra. Aby uzyskać więcej informacji, zobacz dokumentację HealthCheck .

Jetpack Command Line Tool (narzędzie wiersza poleceń)

Narzędzie wiersza poleceń Jetpack oferuje przydatny zestaw podkomend do manipulowania bieżącą maszyną wirtualną i interakcji z Azure CycleCloud.

Komenda Opis
jetpack autoscale Automatycznie skaluj klaster, do którego należy ten węzeł.
jetpack config Pobierz wartość konfiguracji.
jetpack converge Uruchom polecenie "converge", aby zaktualizować konfigurację węzła.
jetpack download Pobierz zasób blob z projektu w Azure Storage.
jetpack keepalive Opóźnij zakończenie działania systemu przez usługę HealthCheck.
jetpack log Zaloguj wiadomość w interfejsie klastrem CycleCloud.
jetpack run_on_shutdown Dodaj skrypt do wywołania przed zakończeniem działania węzła.
jetpack send Wyślij dowolną wiadomość AMQP do serwera CycleCloud.
jetpack shutdown Zażądaj zamknięcia maszyny wirtualnej przez cyclecloud.
jetpack test Uruchamianie testów skojarzonych z projektami przypisanymi do maszyny wirtualnej.
jetpack users Wyświetl listę użytkowników, którymi zarządza usługa CycleCloud na tej maszynie wirtualnej.
jetpack report_issue Archiwizowanie plików dziennika z maszyny wirtualnej do usługi Azure Storage

automatyczne skalowanie Jetpack

Użyj jetpack autoscale polecenia , aby ustawić miejsca 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 rozszerzyć skalę do 100 rdzeni:

jetpack autoscale --corecount=100

Aby przeskalować "gpu" nodearray do pięciu węzłów:

jetpack autoscale --instancecount 5 --name=gpu

Aby dostosować skalowanie automatyczne, zapisz plik JSON na dysku zawierający definicję nodearray, którą chcesz skalować. Aby zwiększyć skalę o 100 rdzeni:

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

konfiguracja pakietu jetpack

Użyj jetpack config polecenia , aby pobrać informacje, które usługa CycleCloud przekazuje do maszyny wirtualnej. Uwidacznia:

  • wszystkie właściwości systemu udostępnione za pośrednictwem Ohai
  • podzbiór metadanych Azure maszyny wirtualnej
  • informacja o nadrzędnym klastrze CycleCloud.

zbieżność plecaka odrzutowego

jetpack converge Polecenie pobiera wszystkie projekty CycleCloud skojarzone z węzłem i uruchamia proces zbieżny, który uruchamia skrypty cluster-init dla węzła.

pobieranie pakietu jetpack

jetpack download polecenie pobiera blob danych, który przesłałeś z projektem do węzła. Musisz określić projekt, do którego należy blob.

Aby pobrać big-file.zip obiektu blob przekazanego example-project w ramach projektu do bieżącego katalogu:

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

Podtrzymanie działania jetpacka

jetpack keepalive Polecenie współdziała z usługą HealthCheck, aby opóźnić zakończenie maszyny wirtualnej z powodu błędu HealthCheck. Opóźnienie można ustawić na określony czas lub nieokreślony. Domyślnie polecenie opóźnia zakończenie przez jedną godzinę.

Aby opóźnić wyłączenie systemu o godzinę:

jetpack keepalive

Aby opóźnić zamknięcie systemu o sześć godzin:

jetpack keepalive 6h

Aby całkowicie wyłączyć usługę HealthCheck, czyli opóźnić zakończenie na czas nieokreślony:

jetpack keepalive forever

Uwaga

Tylko opcja forever jest dostępna dla HealthCheck na maszynach wirtualnych z systemem Windows.

Rejestr plecaka odrzutowego

jetpack log wysyła komunikat dziennika z powrotem do CycleCloud. Komunikat pojawia się w dzienniku serwera aplikacji (zazwyczaj /opt/cycle_server/cycle_server.log), głównym dzienniku zdarzeń i stronie interfejsu użytkownika klastra.

Każdy komunikat ma dwie właściwości: level i priority.

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 na ważność wiadomości. Prawidłowe wartości priorytetu to 'niski', 'średni' i 'wysoki'. Tylko wiadomości o priorytecie średnim lub wyższym są wyświetlane na stronie interfejsu użytkownika klastra, aby uniknąć zalewania strony wiadomościami o niskim priorytecie.

Aby wysłać komunikat dziennika informacyjnego wyświetlany na stronie interfejsu użytkownika klastra:

jetpack log 'system is now ready'

Aby wysłać komunikat dziennika o niskim priorytcie, którego nie chcesz wyświetlać na stronie interfejsu użytkownika klastra:

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

Domyślnie, wiadomości z poziomem error mają wysoki priorytet. Aby wysłać komunikat o błędzie:

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

Aby wysłać trywialną wiadomość o błędzie:

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

jetpack uruchom_przy_zamykaniu

Polecenie jetpack run_on_shutdown rejestruje skrypt powłoki bash, który zostanie wywołany przed zakończeniem działania węzła.

Polecenie przyjmuje bezwzględną ścieżkę do skryptu jako argument.

Po zakończeniu działania węzła na platformie Azure i włączeniu powiadomień o zakończeniu pakiet Jetpack otrzymuje powiadomienie o zakończeniu. Próbuje uruchomić skrypt przed zamknięciem węzła.

Węzły muszą włączyć Powiadomienia o Zakończeniu, aby umożliwić run_on_shutdown.

jetpack run_on_shutdown /tmp/example.sh

To polecenie nie jest obsługiwane w przypadku węzłów systemu Windows.

jetpack wyślij

jetpack send wysyła wiadomość AMQP do CycleCloud. Jest to zaawansowane polecenie, którego nie zalecamy, chyba że tworzysz wtyczki dla aplikacji CycleCloud.

Możesz wysyłać dowolne ciągi znaków lub pliki z określonymi kluczami routingu AMQP.

wyłączenie plecaka rakietowego

Użyj polecenia jetpack shutdown , aby zażądać zakończenia węzła przez usługę CycleCloud. Można przekazać opcje do polecenia, aby określić przyczynę żądania zamknięcia (bezczynność lub zła kondycja) oraz sposób zakończenia pracy węzła (wyłączenie lub cofnięcie przydziału).

Aby zamknąć węzeł znajdujący się w złej kondycji, użyj następującego polecenia:

jetpack shutdown --unhealthy

Aby zwolnić węzeł:

jetpack shutdown --deallocate

jetpack próba

Użyj polecenia jetpack test , aby uruchomić wszystkie testy dołączone do projektów przypisanych do węzła. Polecenie wyświetla wyniki w pliku stdout.

użytkownicy Jetpack

jetpack users wyświetla listę użytkowników zarządzanych przez usługę CycleCloud w węźle. Lista ta może zmieniać się z czasem, gdy użytkownicy są przypisywani i usuwani z klastra.

Aby uzyskać przyjazny dla użytkownika wydruk 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ć JSON przyjazny 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
    }
]

jetpack zgłoś_problem

jetpack report_issue archiwizuje katalogi dzienników z maszyny wirtualnej, opcjonalnie przesyłając je do Azure Storage i tworząc podpisany adres URL do zewnętrznego dostępu. Polecenie przekazuje dzienniki do konta usługi Azure Storage, do których odwołuje się funkcja Locker węzła. Po zalogowaniu archiwum w usłudze Azure Storage wynikowy token SAS ma dostęp tylko do odczytu przez 30 dni.

Użycie:

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

Aby zarchiwizować, przekazać 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ć, prześlij, ale nie podpisuj folderu dziennika innego niż domyślny.

$ 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 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