‫Teraz, gdy widzieliśmy sekrety usług, spójrzmy na sekrety ze stosami. W tym katalogu, próbuję dwóch,
‫w tym
‫katalogu mam plik Compose, a następnie dwa sekrety przechowywane w plikach tekstowych.
‫To jest podobne hasło i nazwy użytkowników, które mieliśmy w poprzednim wykładzie, ale teraz zdefiniowaliśmy
‫to wszystko w pliku tworzenia. Mamy tutaj kilka różnych rzeczy.
‫Po pierwsze, wersja pliku Compose musi teraz mieć 3. 1. Aby mieć sekrety, musimy
‫być w. 1 wydanie 3.
‫Musieliśmy więc mieć 3, aby użyć stosów, ale żeby użyć stosów z sekretami, potrzebujemy 3. 1 lub nowszy.
‫Drugą rzeczą, którą zauważymy, jest to, że tutaj na dole mamy ten klucz tajnych kluczy i
‫teraz definiujemy nasze tajemnice.
‫Dwa sposoby, dzięki którym możesz tworzyć sekrety w pliku tworzenia, używają pliku dla każdego
‫sekretu lub presetułu tajnego.
‫W tym przypadku używamy tylko plików,
‫ale moglibyśmy samodzielnie stworzyć te sekrety w inny sposób za pośrednictwem interfejsu CLI, jak
‫widzieliście, lub bezpośrednio za pośrednictwem interfejsu API. Potem zamiast pliku: pod
‫spodem powiemy tylko "na zewnątrz" i będzie to nazwa sekretu na liście sekretów.
‫Musimy przekazać plik Compose o naszych tajemnicach i ich miejscu, a następnie przypisać je do
‫usług, które ich potrzebują.
‫To kluczowe, ponieważ tak naprawdę mówimy tutaj, że tylko pojemnik, który chce
‫naszego sekretu, jest naszym sekretem. Jeśli był to skomplikowany plik redagowania, w którym mieliśmy wiele usług, możemy mieć
‫różne sekrety dla różnych usług.
‫Najpierw zdefiniowalibyśmy je wszystkie na dole, a następnie przydzielilibyśmy je konkretnie w
‫każdej usłudze.
‫Powiem, że tak naprawdę uważa się za krótką formę lub łatwy sposób na wykonanie sekretów w
‫ramach usługi.
‫W rzeczywistości istnieje długa forma, która pozwala definiować takie rzeczy jak uprawnienia i użytkownicy, którzy
‫mają do nich dostęp, używając standardowego trybu Linux i składni identyfikatora użytkownika.
‫Jeśli więc używasz aplikacji jako użytkownik inny niż root, chcesz kierować te sekrety tylko do tego użytkownika, który
‫może uzyskać do nich dostęp.
‫Ale dla uproszczenia w tym pierwszym przykładzie używamy tylko krótkiej formy.
‫Wszystko, co muszę zrobić, to użyć tego pliku w standardowej komendzie wdrażania stosu. Tak więc, wdrożyć doker-compose, a my
‫nazwiemy to mydb. Zobaczysz, tak jak poprzednio, najpierw stworzyłeś sieć.
‫W tym przypadku najpierw utworzył on sekrety, a następnie utworzył usługę.
‫Jeśli poszedłem i zrobiłem tajny przegląd Docker, zobaczysz, że są tam dwa i podążają za tą
‫samą konwencją nazewnictwa, co wszystkie inne komponenty stosów, gdzie zawsze jest nazwa stosu, a następnie
‫nazwa obiektu.
‫Podobnie jak w poprzednim wykładzie, gdybym skoczył na serwer SQL
‫i faktycznie szukał tych plików, byliby tam tak jak przedtem; tylko teraz są zarządzane w naszym pliku stosu.
‫Fajną rzeczą jest to, że jeśli usunę mój stos, oczyści on również sekrety i pozbędzie się ich. W poprzednim przykładzie, gdybyśmy chcieli
‫usunąć nasze sekrety,
‫musielibyśmy wykonać tajny sekret dokowania, aby faktycznie usunąć każdy z
‫nich. Przypominamy, że w tych
‫przykładach używaliśmy plików tekstowych na tym serwerze i że mówimy tutaj o roju
‫3-węzłowym.
‫Ale jeśli jesteś w środowisku produkcyjnym lub w rzeczywistości, czego nie ma na maszynie lokalnej, nie
‫powinieneś przechowywać sekretów w plikach lub w pliku historii bash ani w żadnym innym miejscu, które mogłoby znajdować się na
‫tym hoście.
‫To w pewnym sensie pokonuje cel posiadania sekretów. Niezależnie od tego, jaki jest twój
‫proces zdobywania sekretów w Roju, po
‫prostu wiedz, że możesz potrzebować oczyszczenia, gdy już skończysz, aby nie pozostawiać resztek tajemnic, które
‫są łatwe do zdobycia.