Maximo Application Suite -zarządzane przez klienta

Dodawanie węzła roboczego GPU do klastra Red Hat OpenShift w systemie AWS

Przed zainstalowaniem produktu IBM® Maximo® Visual Inspection w programie Maximo Application Suite na platformie AWS, należy dodać węzeł roboczy GPU do klastra Red Hat® OpenShift®. Bieżące oferty BYOL AWS Maximo Application Suite nie zawierają węzłów z układem GPU. Program AWS oferuje instancje EC2 , które pochodzą z grupy GPUs. p3.2xlarge jest zalecanym typem instancji EC2 , który ma być używany dla MVI.

Więcej informacji na temat zalecanych instancji GPU AWS można znaleźć w sekcji Zalecane instancje GPU.

Wybierz odpowiednią instancję GPU EC2 , która ma być używana, a następnie sprawdź dostępność instancji w regionie, w którym zainstalowana jest instancja Maximo Application Suite . Te informacje można uzyskać na stronie typu instancji, która znajduje się w usłudze EC2 w konsoli AWS . Jeśli na przykład wdrożono instancję Maximo Application Suite w regionie us-east-1 , przejdź do strony typu instancji EC2 dla tego regionu, https://us-east-1.console.aws.amazon.com/ec2/v2/home?region=us-east-1#InstanceTypes:, a następnie odfiltrowuj według typu instancji. Kliknięcie typu instancji powoduje wyświetlenie strony zawierającej szczegóły typu instancji, obliczenia, sieć, pamięć masową, akceleratory i informacje o cenach. W sieci udostępniane są strefy dostępności typu instancji.

Zanim rozpoczniesz

Upewnij się, że spełnione są następujące wymagania:
  • Powłoka sterowania
    Może to być węzeł bootnode. Znajdź ten komputer w panelu kontrolnym EC2 . Jest on często zatrzymany, znajdź go pod listą wszystkich instancji. W przypadku zatrzymania w stanie zatrzymania należy zrestartować instancję. Połącz się z tą instancją jako użytkownik EC2-user.
    Wskazówka: Można użyć Visual Studio Code zdalnie połączonego z węzłem bootnode. Jest to wygodne, ale nie jest to konieczne.
  • oc
  • jq

Procedura

W oficjalnej dokumentacji Red Hat omówiono sposób tworzenia zestawu maszyn na serwerze AWS. Poniżej przedstawiono również omówione tutajomówione informacje. Ta procedura obejmuje utworzenie kopii istniejącego zasobu niestandardowego YAML węzła procesu roboczego. Kopia jest następnie aktualizowana w przypadku produktu instanceType (zaktualizowanego do wersji p3.2xlarge), nazwa metadanych, etykiety selektora i odpowiednie metadane są usuwane. Dobrze jest również sprawdzić wartości pod kluczem placement (w razie potrzeby zaktualizuj opcje availabilityZone i region). Nowy zestaw maszyn jest następnie tworzony przy użyciu tego zasobu niestandardowego YAML.

  1. W powłoce sterującej należy zalogować się jako masocpuser (lub kubeadmin).
  2. Przejdź do przestrzeni nazw openshift-machine-api .
    
    oc project openshift-machine-api
    

    Jeśli ta opcja nie zostanie wykonana, należy użyć opcji -n i podać openshift-machine-api jako argument w kolejnych krokach.

  3. Wyświetl listę dostępnych makroelementów w klastrze.
    
    oc get machineset -o name
    
  4. Wybierz odpowiedni zestaw maszyn jako szablon dla nowego zasobu niestandardowego JAML węzła roboczego GPU. Najlepiej wybrać zestaw maszyn, który znajduje się w tej samej strefie dostępności, co typ instancji GPU EC2 , który ma być używany do tworzenia nowego węzła. Na przykład, jeśli produkt p3.2xlarge jest dostępny w produkcie us-east-1b, należy wybrać zestaw maszyn, który ma us-east-1b jako część jego nazwy.
  5. Przypisz zmienną dla nazwy zestawu maszyn szablonów.
    Na przykład:
    
    SOURCE_MACHINESET=machine set.machine.openshift.io/masocp-4kyowr-mm5b5-worker-us-east-1b
    
  6. Skopiuj zasób niestandardowy zestawu maszyn źródłowych do nowego pliku.
    
    oc get -o json  $SOURCE_MACHINESET  | jq -r > source-machineset.json
    
    Uwaga: Plik source-machineset.json jest tworzony w bieżącym folderze.
  7. Zdefiniuj zmienne, które mają być używane na później.
    
    OLD_MACHINESET_NAME=$(jq '.metadata.name' -r source-machineset.json)
    
    
    NEW_MACHINESET_NAME=${OLD_MACHINESET_NAME/worker/worker-gpu}
    
  8. Zmień wartość parametru instanceType, liczbę replik (opcjonalnie), usuń niektóre metadane i skopiuj ją do nowego pliku gpu-machineset.json. Plik ten jest używany do tworzenia nowego zestawu maszyn z układem GPU.
    
    jq -r '.spec.template.spec.providerSpec.value.instanceType = "p3.2xlarge"
      | .spec.replicas = 1
      | del(.metadata.selfLink)
      | del(.metadata.uid)
      | del(.metadata.creationTimestamp)
      | del(.metadata.resourceVersion)
      ' source-machineset.json > gpu-machineset.json
    
  9. Zmień nazwę zestawu maszyn w programie gpu-machineset.json.
    
    sed -i "s/$OLD_MACHINESET_NAME/$NEW_MACHINESET_NAME/g" gpu-machineset.json
    
  10. Uruchom komendę diff, aby sprawdzić zmiany.
    
    diff -Nuar source-machineset.json gpu-machineset.json
    

    Więcej informacji na ten temat zawiera sekcja Instalowanie i używanie GPU w systemie AWS.

  11. Sprawdź wartość availabilityZone (znaleziono pod spec.template.spec.providerSpec.value.placement). Upewnij się, że nowy typ instancji (p3.2xlarge) ma tę samą strefę dostępności, lub można pominąć parę klucz-wartość availability z pliku JSON. Jeśli nie, po utworzeniu zestawu maszyn zostanie wyświetlony błąd. Więcej informacji na ten temat zawiera sekcja Rozwiązywanie problemów pod koniec tego zadania.
  12. Utwórz zestaw maszyn:
    
    oc create -f gpu-machineset.json
    
    Przykładowe dane wyjściowe
  13. Sprawdź, czy zestaw maszyn został utworzony.
    
    oc get machineset
    
    Przykładowe dane wyjściowe

    To pokazuje, że nowy węzeł GPU został utworzony, ale nie są jeszcze gotowe i dostępne.

    Pobieranie listy komputerów pokazuje status:
    
    oc get machine
    
    Przykładowe dane wyjściowe:

    NAME                                              PHASE          TYPE         REGION      ZONE         AGE
    masocp-4kyowr-mm5b5-master-0                      Running        m5.2xlarge   us-east-1   us-east-1a   7d8h
    masocp-4kyowr-mm5b5-master-1                      Running        m5.2xlarge   us-east-1   us-east-1b   7d8h
    masocp-4kyowr-mm5b5-master-2                      Running        m5.2xlarge   us-east-1   us-east-1c   7d8h
    masocp-4kyowr-mm5b5-master-3                      Running        m5.2xlarge   us-east-1   us-east-1a   7d8h
    masocp-4kyowr-mm5b5-master-4                      Running        m5.2xlarge   us-east-1   us-east-1b   7d8h
    masocp-4kyowr-mm5b5-worker-gpu-us-east-1b-nrr4n   Provisioning   p3.2xlarge   us-east-1   us-east-1b   22s
    masocp-4kyowr-mm5b5-worker-us-east-1a-kx449       Running        m5.4xlarge   us-east-1   us-east-1a   7d8h
    masocp-4kyowr-mm5b5-worker-us-east-1a-nn72q       Running        m5.4xlarge   us-east-1   us-east-1a   7d8h
    masocp-4kyowr-mm5b5-worker-us-east-1a-p5nqf       Running        m5.4xlarge   us-east-1   us-east-1a   7d8h
    masocp-4kyowr-mm5b5-worker-us-east-1b-7r5wz       Running        m5.4xlarge   us-east-1   us-east-1b   7d8h
    masocp-4kyowr-mm5b5-worker-us-east-1b-94khr       Running        m5.4xlarge   us-east-1   us-east-1b   7d8h
    masocp-4kyowr-mm5b5-worker-us-east-1c-fvv52       Running        m5.4xlarge   us-east-1   us-east-1c   7d8h
    masocp-4kyowr-mm5b5-worker-us-east-1c-rsnwf       Running        m5.4xlarge   us-east-1   us-east-1c   7d8h
    masocp-4kyowr-mm5b5-workerocs-us-east-1a-hwb4m    Running        m5.4xlarge   us-east-1   us-east-1a   7d7h
    masocp-4kyowr-mm5b5-workerocs-us-east-1b-979w8    Running        m5.4xlarge   us-east-1   us-east-1b   7d7h
    masocp-4kyowr-mm5b5-workerocs-us-east-1c-85ktb    Running        m5.4xlarge   us-east-1   us-east-1c   7d7h

    Podczas udostępniania zestawu machinowego przykład danych wyjściowych dla produktu oc get machineset jest następujący:


    NAME                                        DESIRED   CURRENT   READY   AVAILABLE   AGE
    masocp-4kyowr-mm5b5-worker-gpu-us-east-1b   1         1         1       1           3m38s
    masocp-4kyowr-mm5b5-worker-us-east-1a       3         3         3       3           7d8h
    masocp-4kyowr-mm5b5-worker-us-east-1b       2         2         2       2           7d8h
    masocp-4kyowr-mm5b5-worker-us-east-1c       2         2         2       2           7d8h
    masocp-4kyowr-mm5b5-workerocs-us-east-1a    1         1         1       1           7d7h
    masocp-4kyowr-mm5b5-workerocs-us-east-1b    1         1         1       1           7d7h
    masocp-4kyowr-mm5b5-workerocs-us-east-1c    1         1         1       1           7d7h

    Uruchom komendę oc get machine . Dane wyjściowe wskazują, że komputer jest wyposażony:


    NAZWA STREFY REGIONU TYP FAZY REGION
    ...
    masocp-4kyowr-mm5b5-master-3 Running m5.2xlarge us-east-1 us-east-1a 7d8h
    masocp-4kyowr-mm5b5-master-4 Running m5.2xlarge us-east-1 us-east-1b 7d8h
    masocp-4kyowr-mm5b5-worker-gpu-us-east-1b-nrr4n Udostępnione p3.2xlarge us-east-1 us-east-1b 107s
    masocp-4kyowr-mm5b5-worker-us-east-1a-kx449 Uruchomiony m5.4xlarge us-east-1 us-east-1a 7d8h
    ...

    Można również sprawdzić konsolę OpenShift , w sekcji Compute > Węzły lub w obszarze Compute > Machinesets.

Upewnij się, że komendy zostały uruchomione w przestrzeni nazw openshift-machine-api .

Po uruchomieniu komendy oc create -f <machine set custom resource> (krok 12) dane wyjściowe zawsze wskazują, że komputer jest tworzony. Jeśli jednak wystąpi awaria, zestaw maszyn nie jest gotowy i jest dostępny. Uruchomienie programu oc get machine może natychmiast wskazywać na niepowodzenie:


NAME                                              PHASE     TYPE         REGION      ZONE         AGE
masocp-qxkeml-wh7px-master-0                      Running   m5.2xlarge   us-east-1   us-east-1a   18h
masocp-qxkeml-wh7px-master-1                      Running   m5.2xlarge   us-east-1   us-east-1b   18h
masocp-qxkeml-wh7px-master-2                      Running   m5.2xlarge   us-east-1   us-east-1c   18h
masocp-qxkeml-wh7px-worker-gpu-us-east-1a-5z7sd   Failed                                          4s
masocp-qxkeml-wh7px-worker-gpu-us-east-1a-nhldx   Failed                                          20s
masocp-qxkeml-wh7px-worker-us-east-1a-h2c8g       Running   m5.4xlarge   us-east-1   us-east-1a   18h
masocp-qxkeml-wh7px-worker-us-east-1a-p7mt9       Running   m5.4xlarge   us-east-1   us-east-1a   18h
masocp-qxkeml-wh7px-worker-us-east-1b-4rlrq       Running   m5.4xlarge   us-east-1   us-east-1b   18h
masocp-qxkeml-wh7px-worker-us-east-1b-dhv6g       Running   m5.4xlarge   us-east-1   us-east-1b   18h
masocp-qxkeml-wh7px-worker-us-east-1c-ks85p       Running   m5.4xlarge   us-east-1   us-east-1c   18h
masocp-qxkeml-wh7px-workerocs-us-east-1a-9r6pj    Running   m5.4xlarge   us-east-1   us-east-1a   17h
masocp-qxkeml-wh7px-workerocs-us-east-1b-p9psl    Running   m5.4xlarge   us-east-1   us-east-1b   17h
masocp-qxkeml-wh7px-workerocs-us-east-1c-94d7q    Running   m5.4xlarge   us-east-1   us-east-1c   17h

Uruchom program oc describe machine <machine name> lub oc describe machineset <machineset name> , aby wyświetlić przyczynę niepowodzenia, a następnie sprawdź komunikat o błędzie w obszarze Status lub Zdarzenia:


Status:
Warunki:
Czas ostatniego przejścia: 2022-05-26T15:20:25Z
Komunikat: Instancja nie została utworzona
Przyczyna: InstanceNotUtworzono
Istotność: Ostrzeżenie
Status: Fałsz
Typ: InstanceExists
Komunikat o błędzie: Błąd podczas uruchamiania instancji: Żądany typ instancji (p3.2xlarge) nie jest obsługiwany w żądanej strefie dostępności (us-east-1a). Ponów żądanie, jeśli nie podano strefy dostępności lub wybierz us-east-1b, us-east-1c, us-east-1d, us-east-1f.
  Przyczyna błędu: InvalidConfiguration
Ostatnia aktualizacja: 2022-05-26T15:20:26Z
Faza: Niepowodzenie
Status dostawcy:
Warunki:
Czas ostatniej inwentaryzacji: 2022-05-26T15:20:26Z
Czas ostatniego przejścia: 2022-05-26T15:20:26Z
Komunikat: błąd uruchamiania instancji: Żądany typ instancji (p3.2xlarge) nie jest obsługiwany w żądanej strefie dostępności (us-east-1a). Ponów żądanie, jeśli nie podano strefy dostępności lub wybierz us-east-1b, us-east-1c, us-east-1d, us-east-1f.
      Przyczyna: MachineCreationFailed
Status: False
Type: MachineCreation
Events:
Typ przyczyny: Wiek z komunikatu
---- ------ ---- ---- -------
Ostrzeżenie FailedCreate 52s (x2 ponad 53s) awscontroller masocp-qxkeml-wh7px-worker-gpu-us-east-1a-5z7sd: uzgadnianie nie powiodło się: Nie powiodło się uruchomienie instancji: błąd uruchamiania instancji: błąd podczas uruchamiania instancji: Żądany typ instancji (p3.2xlarge) nie jest obsługiwany w żądanej strefie dostępności (us-east-1a). Ponów żądanie, jeśli nie podano strefy dostępności lub wybierz us-east-1b, us-east-1c, us-east-1d, us-east-1f.

W takim przypadku można usunąć zestaw maszyn:

oc delete machineset <machineset name>

Zmodyfikuj wartość availabilityZone w zasobie niestandardowym i ponownie uruchom program oc create -f <customresource.json>. Monitoruj tworzenie zestawu maszyn i maszyn za pomocą komend wymienionych w kroku 13. W przypadku wszystkich innych typów błędów usuń zestaw maszyn, edytuj zasób niestandardowy i utwórz ponownie zestaw maszyn przy użyciu edytowanego pliku JSON zasobu niestandardowego.