Ingress bruges til at administrere applikationens indkommende trafik og også til SSL-afslutning. I modsætning hertil bruges hemmeligheder til at gemme fortrolige oplysninger og TLS-certifikater til anvendelse.
Dette indlæg vil illustrere:
- Hvad er Kubernetes-hemmelighederne?
- Forudsætning: Generer privat nøgle og certifikat
- Hvordan opretter man hemmelige TLS i Kubernetes?
- Hvordan opretter man en hemmelighed gennem Yaml-fil?
- Hvordan indlejrer man hemmelighed med Kubernetes Pod?
- Konklusion
Hvad er Kubernetes-hemmelighederne?
Hemmelighederne er en af Kubernetes-ressourcerne, der bruges til at gemme fortrolige oplysninger såsom brugerloginoplysninger, nøgler, certifikater eller tokens. Hemmelighederne kan skabes individuelt og kobles til pods. Det forhindrer udvikleren i at levere fortrolige data i kode og giver også et ekstra lag af sikkerhed. Forskellige slags hemmeligheder kan skabes og bruges. De mest brugte hemmeligheder er:
Generisk hemmelighed: De generiske hemmeligheder bruges til at gemme grundlæggende oplysninger såsom adgangskoder, tokens, API-nøgler, OAuth-nøgler og så videre.
TLS-hemmelighed: TLS-hemmeligheder bruges til at gemme private nøgler og certifikater, der er underskrevet af CA. For at sikre sikkerheden for applikationer, der kører inde i Kubernetes, og for at sikre kommunikation i klyngen, skal brugeren normalt oprette og indlejre TLS-hemmeligheder i poden.
Docker Registry: Det bruges til at gemme docker-registreringsoplysningerne for nemt at trække billederne fra registreringsdatabasen.
Forudsætning: Generer privat nøgle og certifikat
For at oprette certifikatet og den private nøgle til forbedring af sikkerheden skal du bruge OpenSSL, der opretter CSR (certifikatsigneringsanmodning) og den private nøgle. Brug derefter CSR til at generere de selvsignerede eller CA-certifikater.
For at bruge OpenSSL-kommandoer på Windows skal brugere installere Git. Til dette formål skal du følge vores linkede ' Installer git på Windows ' artikel.
Efter installation af git, følg nedenstående instruktioner for at generere en privat nøgle og signeret certifikat.
Trin 1: Start Git Bash Terminal
Foretag en søgning efter ' Git Bash ” i startmenuen og start terminalen:
For at kontrollere den aktuelle mappe, brug ' pwd kommando:
pwdI øjeblikket arbejder vi i mappen %USERPROFILE%:
Trin 2: Opret ny mappe
Opret en ny mappe for at gemme certifikaterne og den private nøgle:
mkdir certNaviger til den nyoprettede mappe ved hjælp af ' cd kommando:
cd cert
Trin 3: Generer privat nøgle
Generer nu den private nøgle gennem den givne kommando. Her vil den genererede private nøgle blive gemt i ' mycert.nøgle ”:
openssl genpkey -algoritme RSA -ud mycert.nøgle
Trin 4: Generer CSR
For at generere CSR (certificate service request) for at få et signeret certifikat skal du bruge den givne kommando:
openssl req -ny -nøgle mycert.nøgle -ud mycert.csr
Trin 5: Generer certifikat
Til sidst skal du ved hjælp af den genererede private nøgle og CSR oprette et certifikat og gemme det i ' mycert.crt ' fil. Til dette formål skal du udføre kommandoen nedenfor:
openssl x509 -krav -i mycert.csr -skiltet mycert.nøgle -ud mycert.crt -dage 365
Efter generering af TLS-certifikaterne kan brugeren oprette den hemmelige TLS ved at følge nedenstående afsnit.
Hvordan opretter man hemmelige TLS i Kubernetes?
For at sikre applikationssikkerheden og sikker kommunikation inden for og uden for Kubernetes-klyngen er TLS-certifikaterne (Transport Layer Security) essentielle, som bruges til datakryptering. Kubernetes-hemmeligheden giver os mulighed for at integrere TLS-certifikatet med kørende pods gennem hemmelig TLS. For at oprette en hemmelig TLS i Kubernetes skal du gennemgå følgende instruktioner.
Trin 1: Start Minikube Cluster
For at starte minikube-klyngen skal du først starte Windows PowerShell som administrator. Derefter skal du oprette og køre klyngen ved at bruge ' minikube start kommando:
minikube start
Trin 2: Hent noder
Få adgang til Kubernetes-knuden for at kontrollere, om klyngen er startet eller ej:
minikube få noder
Trin 3: Opret hemmelig TLS
Opret TLS-hemmeligheden i Kubernetes ved hjælp af ' kubectl opret hemmelig
Trin 4: Få hemmeligheder
For at bekræfte, skriv Kubernetes-hemmeligheden ned ved at bruge den givne kommando:
kubectl bliver hemmeligHer kan du se, at vi effektivt har skabt en ' demo-hemmelighed ' der indeholder ' 2 ' dataværdier:
Trin 5: Beskriv hemmeligheden
For at se, hvordan data ses eller gemmes hemmeligt, skal du beskrive hemmeligheden ved at bruge ' kubectl beskriver hemmeligheden
Du kan se værdier er gemt i bytes og kan ikke ses direkte i modsætning til Kubernetes ConfigMaps:
Hvordan opretter man en hemmelig TLS gennem Yaml-fil?
For at oprette en hemmelig TLS gennem en yaml-fil skal du først oprette en ' hemmelig.yml ”-fil, tilføje tls base64-kodet certifikat i ' tls.crt ”-tasten, og tilføj base64 kodet nøgle i ' tls.key ”.
Følg de angivne trin for demonstration.
Trin 1: Opret Yaml-fil
Opret en fil med navnet ' hemmelig.yml ' og indsæt den givne kode:
apiVersion : v1data :
tls.crt : 'base64-kodet certifikat'
tls.key : 'base64 kodet nøgle'
venlig : Hemmelighed
metadata :
navn : mytls-hemmelighed
navneområde : Standard
type : kubernetes.io/tls
I ovenstående kodestykke skal du erstatte nøgleværdierne 'tls.crt' og 'tls.key' med dit originale certifikat og nøgleværdier:
Trin 2: Opret en hemmelighed
Anvend nu den hemmelige yaml-fil gennem ' kubectl anvende -f
Outputtet viser, at vi har skabt ' mytls-hemmelighed ' ved hjælp af yaml-fil:
Bemærk: Se TLS-certifikat og privat nøgle
For at se det base64-kodede certifikat og bruge det i yaml-filen, skal du køre ' cat
For at se den base64-kodede nøgle, brug ' kat
Hvordan indlejrer man hemmelig TLS med Kubernetes Pod?
Efter at have oprettet den hemmelige TSL, kan brugeren integrere den med Kubernetes pod. For at gøre det skal du bruge følgende instruktioner.
Trin 1: Opret Yaml-fil
Lav en fil med navnet ' pod.yml ” fil og indsæt nedenstående uddrag i filen:
apiVersion: v1art: Pod
metadata:
navn: demo-pod
spec:
beholdere:
- navn: html-forts
billede: rafia098 / html-img: 1.0
envFra:
- hemmelig Ref:
navn: demo-hemmelighed
I ovenstående uddrag:
- “ venlig ”-tasten angiver den Kubernetes-ressource, som brugeren opretter.
- “ navn ”-tasten indstiller pod-navnet.
- “ containere ”-tasten gemmer containerinformationen.
- “ navn '-tasten under 'containere'-tasten vil indstille containernavnet.
- “ billede ”-tasten vil give applikationen eller containerbilledet til at oprette og starte applikationen inde i beholderen.
- “ envFra ”-tasten indstiller miljøvariablen fra andre Kubernetes-ressourcer. Her, for at indlejre den hemmelige TLS i en pod, ' hemmelig Ref ” bruges til at give en hemmelig reference. For at indlejre ovenstående hemmelige TLS skal du angive navnet på hemmeligheden i 'navn'-tasten.
Trin 2: Opret eller opgrader poden
Åbn derefter mappen, hvor ' pod.yml ' fil oprettes:
cd C:\Users\Dell\Documents\Kubernetes\Secret
Anvend yaml-filen til at oprette eller omkonfigurere poden ved hjælp af ' kubectl anvende kommando:
kubectl anvende -f pod.yml
Trin 3: Få adgang til Kubernetes Pods
For verifikation skal du liste Kubernetes pods ned:
kubectl få podHer kan du se, at vi har lavet ' demo-pod ' succesfuldt:
Trin 4: Beskriv poden
For at kontrollere, om poden har indlejret den hemmelige TLS eller ej, skal du beskrive poden ved hjælp af nedenstående kommando:
kubectl beskrive pod demo-podNedenstående output viser, at vi med succes har indlejret TLS-hemmeligheden med pod:
Vi har dækket, hvordan man opretter hemmelige TLS og indlejrer det med Kubernetes-applikationen, der kører i poden.
Konklusion
For at oprette den hemmelige TLS i Kubernetes skal du først oprette det TLS-signerede certifikat og den private nøgle. Start derefter Kubernetes-klyngen og kør ' kubectl opret hemmelig