Zadanie Określenie to zbiór z 1 lub więcej pojemników konfiguracji . Niektóre zadania mogą wymagać tylko jednego kontenera, podczas gdy inne zadania mogą potrzebować 2 lub więcej potencjalnie połączonych kontenerów działających jednocześnie. Definicja zadania umożliwia określenie, który obraz platformy Docker ma być używany, które porty należy udostępnić, ile procesora i pamięci przydzielić, jak zbierać dzienniki i definiować zmienne środowiskowe.
Zadanie jest tworzony po uruchomieniu zadania bezpośrednio, który uruchamia pojemnik (s) (zdefiniowane w definicji zadań), dopóki nie zostaną zatrzymane lub zjazd na własną rękę, w którym miejscu są one nie otrzymuje automatycznie . Bezpośrednie uruchamianie zadań jest idealne do krótkotrwałych zadań, na przykład jako przykład rzeczy, które zostały wykonane za pośrednictwem CRON.
Serwis służy do gwarancji, że zawsze masz jakąś liczbę zadań uruchomionych w każdym czasie . Jeśli kontener zadania zostanie zamknięty z powodu błędu lub podstawowa instancja EC2 ulegnie awarii i zostanie wymieniona, usługa ECS zastąpi nieudane zadanie. Dlatego tworzymy klastry, aby Usługa miała dużo zasobów w zakresie procesora, pamięci i portów sieciowych do wykorzystania. Dla nas tak naprawdę nie ma znaczenia, na którym wystąpieniu zadania działają, o ile działają. Konfiguracja usługi odwołuje się do definicji zadania. Usługa jest odpowiedzialna za tworzenie zadań .
Usługi są zwykle używane w przypadku długotrwałych aplikacji, takich jak serwery internetowe. Na przykład, jeśli wdrożyłem moją witrynę opartą na Node.JS w Oregonie (us-west-2), chciałbym powiedzieć, że co najmniej trzy zadania działają w trzech strefach dostępności (AZ) ze względu na wysoką dostępność; jeśli jeden się nie powiedzie, mam kolejne dwa, a ten, który się nie udał, zostanie zastąpiony (czytaj jako samoleczenie !). Tworzenie usługi jest sposobem na to. Gdybym miał 6 instancji EC2 w moim klastrze, po 2 na AZ, Usługa automatycznie zrównoważy Zadania między strefami, najlepiej jak to możliwe, uwzględniając jednocześnie procesor, pamięć i zasoby sieciowe.
AKTUALIZACJA:
Nie jestem pewien, czy myślenie o tych sprawach w sposób hierarchiczny pomaga.
Innym bardzo ważnym punktem jest to, że Usługę można skonfigurować do korzystania z modułu równoważenia obciążenia, tak aby podczas tworzenia Zadań - czyli uruchamiania kontenerów zdefiniowanych w definicji zadania - usługa automatycznie rejestrowała instancję EC2 kontenera w module równoważenia obciążenia. Nie można skonfigurować zadań do korzystania z modułu równoważenia obciążenia, tylko usługi mogą.
Pięknie wyjaśnione słowami przez @talentedmrjones. Poniższe zdjęcie pomoże Ci to łatwo zwizualizować :)
źródło
Definicja zadania:
To jest plan opisujący, które kontenery platformy Docker mają być uruchamiane i reprezentują Twoją aplikację. Obejmuje kilka zadań.
Usługa:
Instancja definicji zadania. Definiuje również minimalne i maksymalne zadania z jednej definicji zadania uruchamiane w danym momencie, automatyczne skalowanie i równoważenie obciążenia.
Instancje kontenerów ECS:
Jest to instancja EC2, na której działa Docker i agent kontenera ECS. Agent dba o komunikację pomiędzy ECS a instancją, zapewniając stan uruchomionych kontenerów i zarządzając uruchomieniem nowych.
Związek:
źródło