Ingress viene utilizzato per gestire il traffico in entrata dell'applicazione e anche per la terminazione SSL. Al contrario, i segreti vengono utilizzati per archiviare informazioni riservate e certificati TLS per l'applicazione.
Questo post illustrerà:
- Quali sono i segreti di Kubernetes?
- Prerequisito: generare chiave privata e certificato
- Come creare TLS segreto in Kubernetes?
- Come creare un segreto tramite il file Yaml?
- Come incorporare il segreto con Kubernetes Pod?
- Conclusione
Quali sono i segreti di Kubernetes?
I segreti sono una delle risorse Kubernetes, utilizzata per archiviare informazioni riservate come credenziali di accesso dell'utente, chiavi, certificati o token. I segreti possono essere creati singolarmente e collegati ai pod. Impedisce allo sviluppatore di fornire dati riservati nel codice e fornisce anche un ulteriore livello di sicurezza. È possibile creare e utilizzare diversi tipi di segreti. I segreti più comunemente usati sono:
Segreto generico: I segreti generici vengono utilizzati per archiviare informazioni di base come password, token, chiavi API, chiavi OAuth e così via.
Segreto TLS: I segreti TLS vengono utilizzati per archiviare chiavi private e certificati firmati dalla CA. Per garantire la sicurezza delle applicazioni in esecuzione all'interno di Kubernetes e per proteggere la comunicazione all'interno del cluster, l'utente in genere deve creare e incorporare segreti TLS nel pod.
Registro Docker: Viene utilizzato per archiviare le credenziali del registro docker per estrarre facilmente le immagini dal registro.
Prerequisito: generare chiave privata e certificato
Per creare il certificato e la chiave privata per migliorare la sicurezza, utilizzare OpenSSL che crea la CSR (richiesta di firma del certificato) e la chiave privata. Quindi, utilizzare CSR per generare i certificati autofirmati o CA.
Per utilizzare i comandi OpenSSL su Windows, gli utenti devono installare Git. A questo scopo, segui il nostro link “ Installa git su Windows ' articolo.
Dopo aver installato git, seguire le istruzioni seguenti per generare una chiave privata e un certificato firmato.
Passaggio 1: avvia Git Bash Terminal
Effettua una ricerca per “ Vai Bash ' nel menu Start e avviare il terminale:
Per controllare la directory corrente utilizzare il comando ' pwd 'comando:
pwdAttualmente stiamo lavorando nella directory %USERPROFILE%:
Passaggio 2: crea una nuova directory
Crea una nuova directory per salvare i certificati e la chiave privata:
mkdir certPassare alla directory appena creata utilizzando il pulsante ' CD 'comando:
CD cert
Passaggio 3: genera la chiave privata
Ora genera la chiave privata tramite il comando fornito. Qui, la chiave privata generata verrà salvata in “ mycert.key ':
openssl genpkey -algoritmo RSA -fuori mycert.key
Passaggio 4: generare CSR
Per generare la CSR (richiesta di servizio certificato) per ottenere un certificato firmato, utilizzare il comando indicato:
openssl richiesto -nuovo -chiave mycert.key -fuori mycert.csr
Passaggio 5: generazione del certificato
Infine, utilizzando la chiave privata generata e la CSR, crea un certificato e salvalo nella cartella ' mycert.crt ' file. A questo scopo, esegui il comando seguente:
apresl x509 -rich -In mycert.csr -signkey mycert.key -fuori mycert.crt -giorni 365
Dopo aver generato i certificati TLS, l'utente può creare il TLS segreto seguendo la sezione seguente.
Come creare TLS segreto in Kubernetes?
Per garantire la sicurezza dell'applicazione e la comunicazione protetta all'interno e all'esterno del cluster Kubernetes, sono essenziali i certificati TLS (Transport Layer Security) utilizzati nella crittografia dei dati. Il segreto Kubernetes ci consente di incorporare il certificato TLS con i pod in esecuzione tramite TLS segreto. Per creare un TLS segreto in Kubernetes, segui le seguenti istruzioni.
Passaggio 1: avvia Minikube Cluster
Per avviare il cluster minikube, avviare innanzitutto Windows PowerShell come amministratore. Successivamente, crea ed esegui il cluster utilizzando il comando ' Inizio minikube 'comando:
Inizio minikube
Passaggio 2: ottieni i nodi
Accedi al nodo Kubernetes per verificare se il cluster è avviato o meno:
minikube ottiene i nodi
Passaggio 3: crea TLS segreto
Crea il segreto TLS in Kubernetes utilizzando ' kubectl create secret
Passaggio 4: ottieni segreti
Per conferma, elenca il segreto Kubernetes utilizzando il comando indicato:
kubectl diventa segretoQui puoi vedere che abbiamo effettivamente creato un ' demo-segreto ' quello contiene ' 2 ' valori dei dati:
Passaggio 5: descrivere il segreto
Per vedere come i dati vengono visualizzati o archiviati in segreto, descrivi il segreto utilizzando il simbolo ' kubectl descrive il segreto
Puoi vedere che i valori sono archiviati in byte e non possono essere visualizzati direttamente a differenza di Kubernetes ConfigMaps:
Come creare un TLS segreto tramite il file Yaml?
Per creare un TLS segreto tramite un file yaml, crea innanzitutto un file ' segreto.yml ', aggiungi il file certificato codificato tls base64 nel ' tls.crt ' e aggiungi il file chiave codificata base64 nel ' tls.chiave ”.
Per la dimostrazione, seguire i passaggi elencati.
Passaggio 1: crea il file Yaml
Crea un file denominato ' segreto.yml ' e incolla il codice indicato:
apiVersion : v1dati :
tls.crt : 'Certificato codificato base64'
tls.chiave : 'chiave codificata base64'
Tipo : Segreto
metadati :
nome : mytls-segreto
spazio dei nomi : predefinito
tipo : kubernetes.io/tls
Nello snippet sopra, sostituisci i valori chiave 'tls.crt' e 'tls.key' con il certificato originale e i valori chiave:
Passaggio 2: crea un segreto
Ora applica il file yaml segreto tramite il pulsante “ kubectl apply -f
L'output mostra che abbiamo creato con successo il ' mytls-segreto 'utilizzando il file yaml:
Nota: visualizzare il certificato TLS e la chiave privata
Per visualizzare il certificato con codifica base64 e utilizzarlo nel file yaml, eseguire il comando ' cat
Per visualizzare la chiave codificata base64, utilizzare ' cat
Come incorporare TLS segreto con Kubernetes Pod?
Dopo aver creato il TSL segreto, l'utente può incorporarlo nel pod Kubernetes. Per fare ciò, utilizzare le seguenti istruzioni.
Passaggio 1: crea il file Yaml
Crea un file denominato ' pod.yml ' e incolla lo snippet seguente nel file:
APIVersione: v1tipo: Pod
metadati:
nome: demo-pod
specifica:
contenitori:
- nome: html-cont
immagine: rafia098 / html-img: 1.0
envDa:
- Rif. segreto:
nome: demo-segreto
Nello snippet sopra:
- “ Tipo La chiave ' specifica la risorsa Kubernetes che l'utente sta creando.
- “ nome Il tasto ' imposterà il nome del pod.
- “ contenitori Il tasto memorizzerà le informazioni sul contenitore.
- “ nome ' sotto il tasto 'containers' imposterà il nome del contenitore.
- “ Immagine La chiave ' fornirà l'applicazione o l'immagine del contenitore per creare e avviare l'applicazione all'interno del contenitore.
- “ envFrom ' imposterà la variabile di ambiente da altre risorse Kubernetes. Ecco, per incorporare il TLS segreto in un pod, ' segretoRif ' viene utilizzato per fornire un riferimento segreto. Per incorporare il TLS segreto di cui sopra, specificare il nome del segreto nella chiave 'name'.
Passaggio 2: crea o aggiorna il pod
Successivamente, apri la cartella in cui si trova il ' pod.yml ' viene creato il file:
CD C:\Utenti\Dell\Documenti\Kubernetes\Secret
Applica il file yaml per creare o riconfigurare il pod utilizzando il comando ' kubectl si applica 'comando:
kubectl si applica -F pod.yml
Passaggio 3: accedi ai pod Kubernetes
Per verifica, elenca i pod Kubernetes:
kubectl ottieni podQui puoi vedere che abbiamo creato il ' demo-pod ' con successo:
Passaggio 4: descrivi il pod
Per verificare se il pod ha incorporato o meno il TLS segreto, descrivi il pod utilizzando il comando seguente:
kubectl descrive pod demo-podL'output seguente mostra che abbiamo incorporato con successo il segreto TLS nel pod:
Abbiamo spiegato come creare un TLS segreto e incorporarlo con l'applicazione Kubernetes in esecuzione nel pod.
Conclusione
Per creare il TLS segreto in Kubernetes, crea innanzitutto il certificato firmato TLS e la chiave privata. Successivamente, avvia il cluster Kubernetes ed esegui il comando “ kubectl create secret