Ingress służy do zarządzania ruchem przychodzącym aplikacji, a także do kończenia protokołu SSL. Natomiast klucze tajne służą do przechowywania poufnych informacji i certyfikatów TLS do zastosowania.
Ten post zilustruje:
- Jakie są sekrety Kubernetesa?
- Warunek wstępny: Wygeneruj klucz prywatny i certyfikat
- Jak utworzyć tajny TLS w Kubernetes?
- Jak utworzyć sekret poprzez plik Yaml?
- Jak osadzić sekret w Kubernetes Pod?
- Wniosek
Jakie są sekrety Kubernetesa?
Sekrety to jeden z zasobów Kubernetes, używany do przechowywania poufnych informacji, takich jak dane logowania użytkownika, klucze, certyfikaty lub tokeny. Sekrety można tworzyć indywidualnie i łączyć z kapsułami. Uniemożliwia programiście dostarczanie poufnych danych w kodzie, a także zapewnia dodatkową warstwę bezpieczeństwa. Można tworzyć i wykorzystywać różne rodzaje sekretów. Najczęściej używane sekrety to:
Ogólny sekret: Ogólne sekrety służą do przechowywania podstawowych informacji, takich jak hasła, tokeny, klucze API, klucze OAuth i tak dalej.
Sekret TLS: Sekrety TLS służą do przechowywania kluczy prywatnych i certyfikatów podpisanych przez urząd certyfikacji. Aby zapewnić bezpieczeństwo aplikacji działających wewnątrz Kubernetesa oraz zabezpieczyć komunikację w obrębie klastra, użytkownik zazwyczaj musi utworzyć i osadzić w podie sekrety TLS.
Rejestr Dockera: Służy do przechowywania danych uwierzytelniających rejestru dokera w celu łatwego pobierania obrazów z rejestru.
Warunek wstępny: Wygeneruj klucz prywatny i certyfikat
Aby utworzyć certyfikat i klucz prywatny w celu poprawy bezpieczeństwa, użyj OpenSSL, który tworzy CSR (żądanie podpisania certyfikatu) i klucz prywatny. Następnie użyj CSR, aby wygenerować certyfikaty z podpisem własnym lub certyfikaty urzędu certyfikacji.
Aby korzystać z poleceń OpenSSL w systemie Windows, użytkownicy muszą zainstalować Git. W tym celu skorzystaj z naszych powiązanych „ Zainstaluj gita w systemie Windows artykuł.
Po zainstalowaniu git postępuj zgodnie z poniższymi instrukcjami, aby wygenerować klucz prywatny i podpisany certyfikat.
Krok 1: Uruchom terminal Git Bash
Wyszukaj „ Git Basha ” w menu Start i uruchom terminal:
Aby sprawdzić bieżący katalog, użyj przycisku „ pw ' Komenda:
pwAktualnie pracujemy w katalogu %USERPROFILE%:
Krok 2: Utwórz nowy katalog
Utwórz nowy katalog, aby zapisać certyfikaty i klucz prywatny:
mkdir certyfikatPrzejdź do nowo utworzonego katalogu za pomocą przycisku „ płyta CD ' Komenda:
płyta CD certyfikat
Krok 3: Wygeneruj klucz prywatny
Teraz wygeneruj klucz prywatny za pomocą podanego polecenia. Tutaj wygenerowany klucz prywatny zostanie zapisany w „ mycert.key ”:
klucz genp openssl -algorytm RSA -na zewnątrz mycert.key
Krok 4: Wygeneruj CSR
Aby wygenerować CSR (żądanie obsługi certyfikatu) w celu uzyskania podpisanego certyfikatu, użyj podanego polecenia:
wymagania openssl -nowy -klucz mycert.key -na zewnątrz mycert.csr
Krok 5: Wygeneruj certyfikat
Na koniec, korzystając z wygenerowanego klucza prywatnego i CSR, utwórz certyfikat i zapisz go w „ mycert.crt ' plik. W tym celu wykonaj poniższe polecenie:
otwieraslx509 -wymaganie -W mycert.csr -klucz znakowy mycert.key -na zewnątrz mycert.crt -dni 365
Po wygenerowaniu certyfikatów TLS użytkownik może utworzyć tajny TLS, postępując zgodnie z poniższą sekcją.
Jak utworzyć tajny TLS w Kubernetes?
Aby zapewnić bezpieczeństwo aplikacji i bezpieczną komunikację wewnątrz i na zewnątrz klastra Kubernetes, niezbędne są certyfikaty TLS (Transport Layer Security), które służą do szyfrowania danych. Sekret Kubernetes pozwala nam osadzić certyfikat TLS z uruchomionymi podami poprzez tajny TLS. Aby utworzyć tajny TLS w Kubernetesie, wykonaj poniższe instrukcje.
Krok 1: Uruchom klaster Minikube
Aby uruchomić klaster minikube, najpierw uruchom Windows PowerShell jako administrator. Następnie utwórz i uruchom klaster za pomocą „ początek minikube'a ' Komenda:
początek minikube'a
Krok 2: Zdobądź węzły
Uzyskaj dostęp do węzła Kubernetes, aby sprawdzić, czy klaster jest uruchomiony, czy nie:
minikube pobierz węzły
Krok 3: Utwórz tajny TLS
Utwórz sekret TLS w Kubernetes za pomocą „ kubectl utwórz sekret
Krok 4: Zdobądź sekrety
Aby potwierdzić, wypisz sekret Kubernetes za pomocą podanego polecenia:
kubectl uzyskaj sekretTutaj możesz zobaczyć, że skutecznie stworzyliśmy „ tajemnica demo ' który zawiera ' 2 wartości danych:
Krok 5: Opisz Sekret
Aby zobaczyć, jak dane są przeglądane lub przechowywane w tajemnicy, opisz sekret za pomocą „ kubectl opisz sekret
Możesz zobaczyć, że wartości są przechowywane w bajtach i nie można ich bezpośrednio przeglądać w przeciwieństwie do Kubernetes ConfigMaps:
Jak utworzyć tajny TLS poprzez plik Yaml?
Aby utworzyć tajny TLS poprzez plik YAML, najpierw utwórz „ sekret.yml ”, dodaj plik Certyfikat tls zakodowany w base64 w ' tls.crt ” i dodaj klawisz Klucz zakodowany w formacie base64 w ' klucz tls ”.
W celu demonstracji wykonaj wymienione kroki.
Krok 1: Utwórz plik Yaml
Utwórz plik o nazwie „ sekret.yml ” i wklej podany kod:
wersja api : v1dane :
tls.crt : „certyfikat zakodowany w formacie base64”
klucz tls : „klucz zakodowany w formacie base64”
Uprzejmy : Sekret
metadane :
nazwa : tajemnica mytls
przestrzeń nazw : domyślny
typ : kubernetes.io/tls
W powyższym fragmencie zastąp wartości kluczy „tls.crt” i „tls.key” oryginalnym certyfikatem i wartościami kluczy:
Krok 2: Stwórz sekret
Teraz zastosuj tajny plik YAML poprzez „ kubectl Apply -f <ścieżka do sekretu.yml> ' Komenda:
kubectl zastosuj -F sekret.ymlDane wyjściowe pokazują, że pomyślnie utworzyliśmy „ tajemnica mytls ” przy użyciu pliku YAML:
Uwaga: Wyświetl certyfikat TLS i klucz prywatny
Aby wyświetlić certyfikat zakodowany w formacie Base64 i użyć go w pliku YAML, uruchom „ cat <ścieżka do pliku certyfikatu> | baza64 ” polecenie w terminalu git bash:
kot mycert.crt | baza64Aby wyświetlić klucz zakodowany w base64, użyj „ cat <ścieżka do pliku klucza> | baza64 ' Komenda:
kot mycert.key | baza64Jak osadzić tajny TLS w Kubernetes Pod?
Po utworzeniu tajnego TSL użytkownik może osadzić go w Kubernetes Pod. Aby to zrobić, skorzystaj z poniższych instrukcji.
Krok 1: Utwórz plik Yaml
Utwórz plik o nazwie „ pod.yml ” i wklej poniższy fragment do pliku:
Wersja api: v1rodzaj: Pod
metadane:
nazwa: demo-pod
specyfikacja:
pojemniki:
- nazwa: html-cd
zdjęcie: rafia098 / html-img: 1,0
envOd:
- sekretRef:
nazwa: demo-sekret
W powyższym fragmencie:
- „ Uprzejmy ” określa zasób Kubernetes, który tworzy użytkownik.
- „ nazwa ” ustawi nazwę kapsuły.
- „ pojemniki ” przechowuje informacje o kontenerze.
- „ nazwa ” pod klawiszem „kontenery” ustawi nazwę kontenera.
- „ obraz ” udostępni obraz aplikacji lub kontenera umożliwiający utworzenie i uruchomienie aplikacji wewnątrz kontenera.
- „ envOd ” ustawi zmienną środowiskową z innych zasobów Kubernetes. Tutaj, aby osadzić tajny TLS w kapsule, „ sekretRef ” służy do zapewnienia tajnego odniesienia. Aby osadzić powyższy sekret TLS, podaj nazwę sekretu w kluczu „nazwa”.
Krok 2: Utwórz lub uaktualnij kapsułę
Następnie otwórz folder, w którym znajduje się „ pod.yml ” tworzony jest plik:
płyta CD C:\Users\Dell\Documents\Kubernetes\Secret
Zastosuj plik YAML, aby utworzyć lub ponownie skonfigurować pod za pomocą „ kubectl zastosuj ' Komenda:
kubectl zastosuj -F pod.yml
Krok 3: Uzyskaj dostęp do podów Kubernetes
W celu weryfikacji wypisz pody Kubernetes:
kubectl pobierz kapsułęTutaj możesz zobaczyć, że stworzyliśmy „ kapsuła demonstracyjna ' z powodzeniem:
Krok 4: Opisz kapsułę
Aby sprawdzić, czy pod ma wbudowany tajny TLS, czy nie, opisz kapsułę za pomocą poniższego polecenia:
kubectl opisuje pod demo-podPoniższe dane wyjściowe pokazują, że pomyślnie osadziliśmy klucz tajny TLS w pod:
Omówiliśmy, jak utworzyć tajny protokół TLS i osadzić go w aplikacji Kubernetes działającej w pod.
Wniosek
Aby utworzyć tajny TLS w Kubernetes, najpierw utwórz podpisany certyfikat TLS i klucz prywatny. Następnie uruchom klaster Kubernetes i uruchom „ kubectl utwórz sekret