Przejdź do głównej zawartości

Uruchamianie własnego obrazu w CGC CLI

Jak uruchomić własny obraz Docker jako zasób obliczeniowy poleceniem cgc compute create custom, w tym prywatne rejestry, polecenie startowe, porty i rozliczenia.

Główną różnicą w porównaniu do predefiniowanych aplikacji jest użycie słowa kluczowego custom podczas tworzenia zasobu niestandardowego. Polecenie wygląda następująco:

cgc compute create custom -n my-app -g 1 -gt NVIDIA-A100-SXM4-80GB -c 8 -m 24 -v my-vol -fp /workspace/my-app --image repository/my-image:tag
informacja

Szablony typu custom domyślnie nie posiadają portów. Jeśli chcesz udostępnić PORT w sieci (web) lub w namespace, musisz dodać PORT dla tej aplikacji za pomocą CLI lub SDK. http to unikalna nazwa portu, używana do wystawienia Ingress pod ścieżką główną (/).

cgc compute port add APP-NAME -p PORT-NUMBER -n http - tworzy port z włączonym Ingress, pod prefiksem /

cgc compute port add APP-NAME -p PORT-NUMBER -n http -ni - tworzy port bez włączonego Ingress

cgc compute port add APP-NAME -p PORT-NUMBER -n other - tworzy port z włączonym Ingress, pod prefiksem /other

uwaga

W CLI 1.5.1 flaga -ni / --no-ingress nie działa i port i tak jest publikowany do Internetu. Sprawdź to poleceniem cgc compute port list <name> i usuń port, jeśli ma pozostać wewnętrzny.

Wszystkie flagi pozostają takie same z wyjątkiem:

  • -i, --image - repository/my-image:tag. Zauważ, że jeśli pobierasz z publicznego repozytorium, dockerhub nie wymaga nazwy repozytorium.

Bądź ostrożny ze ścieżką pełnego montażu -fp. Domyślnie CGC zamontuje wolumen aplikacji custom w /usr/my-vol.

Jeśli chcesz sprawdzić wszystkie używane ścieżki montażu w swoich aplikacjach, możesz użyć następującego polecenia:

cgc compute list-mounts

Dodatkowe flagi do rozważenia podczas tworzenia niestandardowej aplikacji:

  • --repository-secret - nazwa sekretu używanego do pobierania obrazu z prywatnego repozytorium
  • --node-port-enabled - włącz usługę korzystając z NodePort dla zasobu obliczeniowego w instancjach CGC OnPremise (dostępne od wersji klienta 1.0.14)
  • -e, --environment - pozwala na przekazanie niestandardowych zmiennych środowiskowych do kontenera
  • -ce, --cgc-env - pozwala na przekazanie do kontenera specyficznych dla CGC danych w formacie klucz=wartość. Akceptowane klucze:
    • custom_image - nazwa niestandardowego obrazu kontenera do uruchomienia.
    • image_pull_secret_name - nazwa sekretu używanego do uwierzytelnienia i pobrania obrazu z prywatnego rejestru.
    • custom_command - polecenie, które zostanie wykonane w kontenerze po jego uruchomieniu.
    • app_token - token aplikacji używany do uwierzytelniania żądań do uruchomionej instancji.
  • argumenty, które zostaną przekazane do kontenera po -- (np. -- --arg1 value1 --arg2 value2 --arg3 --arg4=value -arg5=value)

Polecenie startowe​

STDIN jest akceptowane jako polecenie startowe. Możesz użyć następującego polecenia, aby przekazać swoje polecenie do kontenera:

echo "echo;" | cgc compute create custom -n test --image ubuntu

Lub możesz użyć pliku:

cat ./command.bash | cgc compute create custom -n test --image ubuntu

W powyższym przykładzie command.bash to plik zawierający twoje polecenie.

Przykładowa zawartość pliku command.bash:

echo "Hello World"; echo "Hello World";

lub

echo 'Hello World';
echo 'Hello World';

Użycie Prywatnego Repozytorium​

CGC umożliwia tworzenie i zarządzanie własnymi sekretami, które pozwalają na pobieranie obrazów kontenerów z prywatnych repozytoriów. Aby skonfigurować dostęp, należy najpierw utworzyć sekret, a następnie odwołać się do niego podczas uruchamiania instancji custom.

  1. Tworzenie sekretu rejestru Utwórz sekret w swoim namespace za pomocą CLI CGC. Sekret ten przechowuje dane uwierzytelniające do rejestru i może być wykorzystany wielokrotnie.
cgc secret create -r <registry_url> -u <username> -p <password> <nazwa_sekretu>

Sekret będzie zapisany w Twoim namespace i może być używany ponownie.

  1. Uruchamianie instancji z użyciem secretu Po utworzeniu sekretu użyj go do uruchomienia instancji custom z obrazem z prywatnego repozytorium:
cgc compute create custom -n <nazwa> -c <CPU> -m <RAM> --image <registry_url>/<namespace>/<nazwa_obrazu>:<TAG> --repository-secret <nazwa_sekretu>

Usuwanie Twojej Niestandardowej Aplikacji​

Aplikacje oparte na niestandardowych obrazach są traktowane tak samo jak wbudowane aplikacje CGC. Aby usunąć aplikację, użyj następującego polecenia:

cgc compute delete my-app
# lub
cgc rm my-app

Rozliczanie​

Niestandardowe aplikacje są rozliczane tak samo jak wszystkie inne aplikacje.

Uwaga

Obrazy większe niż 20GB nie uruchomią się: obraz jest rozpakowywany na ulotnym dysku (ephemeral storage) węzła, którego rozmiar jest ograniczony per aplikacja. Skontaktuj się z nami pod adresem support@comtegra.pl, jeśli Twój obraz jest większy, abyśmy mogli zwiększyć Twój domyślny limit.