Ingress wordt gebruikt om inkomend applicatieverkeer te beheren en ook voor SSL-beëindiging. Geheimen worden daarentegen gebruikt om vertrouwelijke informatie en TLS-certificaten op te slaan voor toepassing.
Dit bericht zal illustreren:
- Wat zijn de Kubernetes-geheimen?
- Vereiste: Genereer een privésleutel en certificaat
- Hoe maak je geheime TLS in Kubernetes?
- Hoe maak je een geheim via Yaml-bestand?
- Hoe geheimen insluiten met Kubernetes Pod?
- Conclusie
Wat zijn de Kubernetes-geheimen?
De geheimen zijn een van de Kubernetes-bronnen, die worden gebruikt om vertrouwelijke informatie op te slaan, zoals inloggegevens van gebruikers, sleutels, certificaten of tokens. De geheimen kunnen individueel worden aangemaakt en aan pods worden gekoppeld. Het voorkomt dat de ontwikkelaar vertrouwelijke gegevens in code aanlevert en biedt bovendien een extra beveiligingslaag. Er kunnen verschillende soorten geheimen worden gemaakt en gebruikt. De meest gebruikte geheimen zijn:
Generiek geheim: De generieke geheimen worden gebruikt om basisinformatie op te slaan, zoals wachtwoorden, tokens, API-sleutels, OAuth-sleutels, enzovoort.
TLS-geheim: TLS-geheimen worden gebruikt om privésleutels en certificaten op te slaan die zijn ondertekend door de CA. Om de veiligheid te garanderen van applicaties die binnen Kubernetes draaien en om de communicatie binnen het cluster te beveiligen, moet de gebruiker doorgaans TLS-geheimen maken en insluiten in de pod.
Docker-register: Het wordt gebruikt om de docker-registerreferenties op te slaan, zodat de afbeeldingen gemakkelijk uit het register kunnen worden gehaald.
Vereiste: Genereer een privésleutel en certificaat
Om het certificaat en de privésleutel te maken voor verbetering van de beveiliging, gebruikt u OpenSSL dat de CSR (certificaatondertekeningsverzoek) en privésleutel aanmaakt. Gebruik vervolgens CSR om de zelfondertekende of CA-certificaten te genereren.
Om de OpenSSL-opdrachten op Windows te gebruiken, moeten gebruikers Git installeren. Volg hiervoor onze gekoppelde “ Installeer git op Windows ' artikel.
Volg na het installeren van git de onderstaande instructies om een privésleutel en een ondertekend certificaat te genereren.
Stap 1: Start Git Bash Terminal
Zoek naar “ Git Bash ” in het Start-menu en start de terminal:
Om de huidige map te controleren, gebruikt u de “ pwd ” commando:
pwdMomenteel werken we in de map %USERPROFILE%:
Stap 2: Maak een nieuwe map
Maak een nieuwe map om de certificaten en privésleutel op te slaan:
mkdir certNavigeer naar de nieuw aangemaakte map met behulp van de “ CD ” commando:
CD cert
Stap 3: Genereer een privésleutel
Genereer nu de privésleutel via het gegeven commando. Hier wordt de gegenereerde privésleutel opgeslagen in “ mijncert.key ”:
openssl genpkey -algoritme RSA -uit mijncert.key
Stap 4: Genereer CSR
Om de CSR (certificaatserviceaanvraag) te genereren om een ondertekend certificaat te verkrijgen, gebruikt u de gegeven opdracht:
openssl vereist -nieuw -sleutel mijncert.key -uit mijncert.csr
Stap 5: Certificaat genereren
Maak ten slotte met behulp van de gegenereerde privésleutel en CSR een certificaat en sla dit op in de map “ mijncert.crt ' bestand. Voer hiervoor het onderstaande commando uit:
opensslx509 -vereist -in mijncert.csr -tekensleutel mijncert.key -uit mijncert.crt -dagen 365
Na het genereren van de TLS-certificaten kan de gebruiker de geheime TLS maken door het onderstaande gedeelte te volgen.
Hoe maak je geheime TLS in Kubernetes?
Om de applicatiebeveiliging en veilige communicatie binnen en buiten het Kubernetes cluster te waarborgen zijn de TLS (Transport Layer Security) certificaten essentieel die gebruikt worden bij het versleutelen van data. Met het Kubernetes-geheim kunnen we het TLS-certificaat insluiten met actieve pods via geheime TLS. Om een geheime TLS in Kubernetes aan te maken, doorloopt u de volgende instructies.
Stap 1: Start het Minikube-cluster
Om het minikube-cluster te starten, start u eerst Windows PowerShell als beheerder. Maak daarna het cluster en voer het uit met behulp van de “ minikube starten ” commando:
minikube starten
Stap 2: Knooppunten ophalen
Ga naar het Kubernetes-knooppunt om te controleren of het cluster is gestart of niet:
minikube krijgt knooppunten
Stap 3: Maak een geheime TLS
Maak het TLS-geheim in Kubernetes met behulp van “ kubectl create secret
Stap 4: Krijg geheimen
Ter bevestiging vermeldt u het Kubernetes-geheim met behulp van de gegeven opdracht:
kubectl wordt geheimHier kunt u zien dat we effectief een “ demo-geheim ' dat bezit ' 2 ” gegevenswaarden:
Stap 5: Beschrijf geheim
Om te zien hoe gegevens in het geheim worden bekeken of opgeslagen, beschrijft u het geheim met behulp van de “ kubectl beschrijft geheim
U kunt zien dat waarden in bytes zijn opgeslagen en niet direct kunnen worden bekeken, in tegenstelling tot Kubernetes ConfigMaps:
Hoe maak je een geheime TLS via het Yaml-bestand?
Om een geheime TLS via een yaml-bestand te maken, maakt u eerst een “ geheim.yml '-bestand, voeg het tls base64 gecodeerd certificaat in de ' tls.crt '-toets en voeg de base64-gecodeerde sleutel in de ' tls.sleutel ”.
Volg voor demonstratie de vermelde stappen.
Stap 1: Maak een Yaml-bestand
Maak een bestand met de naam “ geheim.yml ' en plak de gegeven code:
apiversie : v1gegevens :
tls.crt : 'base64 gecodeerd certificaat'
tls.sleutel : 'base64 gecodeerde sleutel'
vriendelijk : Geheim
metagegevens :
naam : mytls-geheim
naamruimte : standaard
type : kubernetes.io/tls
Vervang in het bovenstaande fragment de sleutelwaarden ‘tls.crt’ en ‘tls.key’ door uw originele certificaat en sleutelwaarden:
Stap 2: Creëer een geheim
Pas nu het geheime yaml-bestand toe via de “ kubectl apply -f
Uit de uitvoer blijkt dat we met succes de “ mytls-geheim 'met behulp van yaml-bestand:
Opmerking: Bekijk het TLS-certificaat en de privésleutel
Om het met base64 gecodeerde certificaat te bekijken en in het yaml-bestand te gebruiken, voert u de opdracht “ cat
Om de met base64 gecodeerde sleutel te bekijken, gebruikt u “ cat
Hoe geheime TLS in te sluiten met Kubernetes Pod?
Nadat de gebruiker de geheime TSL heeft gemaakt, kan deze worden ingesloten met de Kubernetes-pod. Gebruik hiervoor de volgende instructies.
Stap 1: Maak een Yaml-bestand
Maak een bestand met de naam “ pod.yml ”-bestand en plak het onderstaande fragment in het bestand:
apiVersie: v1soort: Pod
metagegevens:
naam: demo-pod
specificatie:
containers:
- naam: html-cont
afbeelding: rafia098 / html-img: 1,0
envVan:
- geheimRef:
naam: demo-geheim
In het bovenstaande fragment:
- “ vriendelijk De sleutel specificeert de Kubernetes-bron die de gebruiker maakt.
- “ naam '-toets stelt de podnaam in.
- “ containers ”-toets slaat de containerinformatie op.
- “ naam '-toets onder de'containers'-toets stelt de containernaam in.
- “ afbeelding De sleutel levert de applicatie- of containerimage waarmee u de applicatie in de container kunt maken en starten.
- “ envVan De sleutel stelt de omgevingsvariabele van andere Kubernetes-bronnen in. Hier, om de geheime TLS in een pod in te sluiten, “ geheimRef ” wordt gebruikt om een geheime referentie op te geven. Om de bovenstaande geheime TLS in te sluiten, geeft u de naam van het geheim op in de sleutel “name”.
Stap 2: Maak of upgrade de pod
Open vervolgens de map waarin de “ pod.yml ”-bestand is gemaakt:
CD C:\Users\Dell\Documenten\Kubernetes\Secret
Pas het yaml-bestand toe om de pod te maken of opnieuw te configureren met behulp van de “ kubectl van toepassing ” commando:
kubectl van toepassing -F pod.yml
Stap 3: Toegang tot Kubernetes-pods
Ter verificatie vermeldt u de Kubernetes-pods:
kubectl krijgt podHier kunt u zien dat we de “ demo-pod ' met succes:
Stap 4: Beschrijf de pod
Om te controleren of de pod de geheime TLS heeft ingesloten of niet, beschrijft u de pod met behulp van de onderstaande opdracht:
kubectl beschrijft pod demo-podUit de onderstaande uitvoer blijkt dat we het TLS-geheim met succes hebben ingebed in de pod:
We hebben besproken hoe u geheime TLS kunt maken en deze kunt insluiten met de Kubernetes-toepassing die in de pod wordt uitgevoerd.
Conclusie
Om de geheime TLS in Kubernetes te maken, maakt u eerst het door TLS ondertekende certificaat en de persoonlijke sleutel aan. Start daarna het Kubernetes-cluster en voer de “ kubectl create secret