Ingress används för att hantera applikationens inkommande trafik och även för SSL-avslutning. Däremot används hemligheter för att lagra konfidentiell information och TLS-certifikat för tillämpning.
Det här inlägget kommer att illustrera:
- Vad är Kubernetes hemligheter?
- Förutsättning: Generera privat nyckel och certifikat
- Hur skapar man hemlig TLS i Kubernetes?
- Hur skapar man en hemlighet genom Yaml-fil?
- Hur bäddar man in hemlighet med Kubernetes Pod?
- Slutsats
Vad är Kubernetes hemligheter?
Hemligheterna är en av Kubernetes-resurserna som används för att lagra konfidentiell information som användaruppgifter, nycklar, certifikat eller tokens. Hemligheterna kan skapas individuellt och kopplas till poddar. Det hindrar utvecklaren från att tillhandahålla konfidentiell data i kod och ger också ett extra lager av säkerhet. Olika typer av hemligheter kan skapas och användas. De vanligaste hemligheterna är:
Generisk hemlighet: De generiska hemligheterna används för att lagra grundläggande information som lösenord, tokens, API-nycklar, OAuth-nycklar och så vidare.
TLS hemlighet: TLS-hemligheter används för att lagra privata nycklar och certifikat som är signerade av CA. För att säkerställa säkerheten för applikationer som körs inuti Kubernetes och för att säkra kommunikationen inom klustret, behöver användaren vanligtvis skapa och bädda in TLS-hemligheter i podden.
Docker Registry: Det används för att lagra docker-registret för att enkelt hämta bilderna från registret.
Förutsättning: Generera privat nyckel och certifikat
För att skapa certifikatet och den privata nyckeln för säkerhetsförbättring, använd OpenSSL som skapar CSR (certifikatsigneringsbegäran) och den privata nyckeln. Använd sedan CSR för att generera de självsignerade eller CA-certifikaten.
För att använda OpenSSL-kommandona på Windows måste användare installera Git. För detta ändamål, följ vår länkade ' Installera git på Windows ' artikel.
Efter att ha installerat git, följ instruktionerna nedan för att generera en privat nyckel och ett signerat certifikat.
Steg 1: Starta Git Bash Terminal
Gör en sökning efter ' Git Bash ' i Start-menyn och starta terminalen:
För att kontrollera den aktuella katalogen använd ' pwd ” kommando:
pwdFör närvarande arbetar vi i katalogen %USERPROFILE%:
Steg 2: Skapa ny katalog
Skapa en ny katalog för att spara certifikaten och den privata nyckeln:
mkdir certNavigera till den nyskapade katalogen med ' CD ” kommando:
CD cert
Steg 3: Generera privat nyckel
Generera nu den privata nyckeln genom det givna kommandot. Här kommer den genererade privata nyckeln att sparas i ' mycert.nyckel ”:
openssl genpkey -algoritm RSA -ut mycert.nyckel
Steg 4: Generera CSR
För att generera CSR (certificate service request) för att få ett signerat certifikat, använd det givna kommandot:
openssl req -ny -nyckel mycert.nyckel -ut mycert.csr
Steg 5: Skapa certifikat
Slutligen, med den genererade privata nyckeln och CSR, skapa ett certifikat och spara det i ' mycert.crt ' fil. För detta ändamål, kör följande kommando:
openssl x509 -req -i mycert.csr -skylt mycert.nyckel -ut mycert.crt -dagar 365
Efter att ha genererat TLS-certifikaten kan användaren skapa den hemliga TLS genom att följa avsnittet nedan.
Hur skapar man hemlig TLS i Kubernetes?
För att säkerställa applikationssäkerhet och säker kommunikation inom och utanför Kubernetes-klustret är TLS-certifikaten (Transport Layer Security) viktiga som används vid datakryptering. Kubernetes-hemligheten tillåter oss att bädda in TLS-certifikatet med körande pods genom hemlig TLS. För att skapa en hemlig TLS i Kubernetes, gå igenom följande instruktioner.
Steg 1: Starta Minikube Cluster
För att starta minikube-klustret, starta först Windows PowerShell som administratör. Efter det, skapa och kör klustret med hjälp av ' minikube start ” kommando:
minikube start
Steg 2: Hämta noder
Gå till Kubernetes-noden för att kontrollera om klustret är startat eller inte:
minikube få noder
Steg 3: Skapa hemlig TLS
Skapa TLS-hemligheten i Kubernetes med ' kubectl skapa hemlighet –nyckel=
Steg 4: Få hemligheter
För bekräftelse listar du Kubernetes-hemligheten med det givna kommandot:
kubectl blir hemligtHär kan du se att vi effektivt har skapat en ' demo-hemlighet ' som innehåller ' 2 ' datavärden:
Steg 5: Beskriv hemlighet
För att se hur data visas eller lagras i hemlighet, beskriv hemligheten med hjälp av ' kubectl beskriv hemligheten
Du kan se värden lagras i byte och kan inte visas direkt till skillnad från Kubernetes ConfigMaps:
Hur man skapar en hemlig TLS genom Yaml-fil?
För att skapa en hemlig TLS genom en yaml-fil, skapa först en ' hemlig.yml ”-filen, lägg till tls base64-kodat certifikat i ' tls.crt ” och lägg till base64-kodad nyckel i ' tls.key ”.
Följ stegen i listan för demonstration.
Steg 1: Skapa Yaml-fil
Skapa en fil med namnet ' hemlig.yml ' och klistra in den givna koden:
apiVersion : v1data :
tls.crt : 'base64-kodat certifikat'
tls.key : 'base64-kodad nyckel'
snäll : Hemlighet
metadata :
namn : mytls-hemlig
namnutrymme : standard
typ : kubernetes.io/tls
I kodavsnittet ovan ersätter du nyckelvärdena 'tls.crt' och 'tls.key' med ditt ursprungliga certifikat och nyckelvärden:
Steg 2: Skapa en hemlighet
Applicera nu den hemliga yaml-filen genom ' kubectl tillämpa -f
Resultatet visar att vi framgångsrikt har skapat ' mytls-hemlig ' med yaml-fil:
Obs: Visa TLS-certifikat och privat nyckel
För att se det base64-kodade certifikatet och använda det i yaml-filen, kör ' cat | bas64 ” kommando i git bash terminalen:
För att se den base64-kodade nyckeln, använd ' cat | bas64 ” kommando:
Hur bäddar man in hemlig TLS med Kubernetes Pod?
Efter att ha skapat den hemliga TSL:n kan användaren bädda in den med Kubernetes pod. För att göra det, använd följande instruktioner.
Steg 1: Skapa Yaml-fil
Gör en fil med namnet ' pod.yml ' fil och klistra in nedanstående kodavsnitt i filen:
apiVersion: v1typ: Pod
metadata:
namn: demo-pod
spec:
behållare:
- namn: html-forts
bild: rafia098 / html-img: 1.0
envFrån:
- hemligRef:
namn: demo-hemlighet
I utdraget ovan:
- ' snäll ”-nyckel anger Kubernetes-resursen som användaren skapar.
- ' namn ”-tangenten ställer in podnamnet.
- ' behållare ”-tangenten lagrar behållarinformationen.
- ' namn '-tangenten under 'containers'-tangenten kommer att ställa in behållarens namn.
- ' bild ”-tangenten tillhandahåller applikationen eller behållarbilden för att skapa och starta applikationen inuti behållaren.
- ' envFrån ”-tangenten ställer in miljövariabeln från andra Kubernetes-resurser. Här, för att bädda in den hemliga TLS i en pod, ' hemligRef ” används för att tillhandahålla en hemlig referens. För att bädda in ovanstående hemliga TLS, ange namnet på hemligheten i 'namn'-nyckeln.
Steg 2: Skapa eller uppgradera podden
Öppna sedan mappen där ' pod.yml ' fil skapas:
CD C:\Users\Dell\Documents\Kubernetes\Secret
Använd yaml-filen för att skapa eller konfigurera om podden med hjälp av ' kubectl tillämpas ” kommando:
kubectl tillämpas -f pod.yml
Steg 3: Öppna Kubernetes Pods
För verifiering listar du Kubernetes-poddarna:
kubectl få podHär kan du se att vi har skapat ' demo-pod ' framgångsrikt:
Steg 4: Beskriv podden
För att kontrollera om podden har bäddat in den hemliga TLS eller inte, beskriv poden med kommandot nedan:
kubectl beskriv pod demo-podUtdata nedan visar att vi framgångsrikt har bäddat in TLS-hemligheten med pod:
Vi har täckt hur man skapar hemlig TLS och bäddar in den med Kubernetes-applikationen som körs i podden.
Slutsats
För att skapa den hemliga TLS i Kubernetes, skapa först det TLS-signerade certifikatet och den privata nyckeln. Efter det startar du Kubernetes-klustret och kör ' kubectl skapa hemlighet –nyckel=