Evviva! Un altro collega admin!
Ciao a tutti,
in questo tutorial vi mostro e vi spiego i comandi per generare nuovi certificati TLS per un nuovo "admin" del vostro cluster Kubernetes.
Da richiedente
Prima di tutto, generate una chiave privata per l'utente:
openssl genrsa -out sam.key 4096
Create un file chiamato sam.cnf
[ req ]
default_bits = 2048
prompt = no
default_md = sha256
distinguished_name = dn
[ dn ]
CN = sam
O = administrators
[ v3_ext ]
authorityKeyIdentifier=keyid,issuer:always
basicConstraints=CA:FALSE
keyUsage=keyEncipherment,dataEncipherment
extendedKeyUsage=serverAuth,clientAuth
Questo file cnf imposta l'utente "sam" (CN).
Create il file csr con
openssl req -config ./sam.cnf -new -key sam.key -nodes -out sam.csr
Ora date il vostro sam.csr a un amministratore di sistema.
Da amministratore esistente
Da amministratore di sistema, dovete creare una CertificateSigningRequest usando l'oggetto csr
Create lo yaml
cat << EOF | kubectl apply -f -
apiVersion: certificates.k8s.io/v1beta1
kind: CertificateSigningRequest
metadata:
name: sam-request
spec:
groups:
- system:authenticated
request: $( cat sam.csr | base64 | tr -d '\n' )
usages:
- client auth
EOF
Poi approvate la richiesta con:
kubectl certificate approve sam-request
Ora potete estrarre il crt con questo comando:
kubectl get csr sam-request -o jsonpath = '{.status.certificate}' | base64 --decode > sam.crt
Adesso collegate il clusterrole cluster-admin all'utente sam (promemoria: sam è definito nel CN)
kubectl create clusterrolebinding sam-admin --clusterrole = cluster-admin --user = sam
Di nuovo, da richiedente
Fatevi mandare dagli amministratori ca.crt e sam.crt per generare il vostro kubeconfig
Impostate le info del cluster
export CURRENT_PATH = $( pwd )
kubectl config --kubeconfig = config-demo set-cluster development --server = https://yourendpoint:6443 --certificate-authority = fullpath/ca.crt
Impostate le info dell'utente
kubectl config --kubeconfig = config-demo set-credentials sam --client-certificate = fullpath/sam.crt --client-key = fullpath/sam.key
Create il nuovo context "development"
kubectl config --kubeconfig = config-demo set-context development --cluster = development --user = sam
Impostate il context corrente
kubectl config --kubeconfig = config-demo use-context development
Ora dovrebbe funzionare tutto con il vostro nuovo file kubeconfig!
kubectl get nodes --kubeconfig = /Volumes/Data/Nutellino/terraform/cka/sam-crt/config-demo
Alla prossima! :)
lucchetto nel banner da Technology vector created by rawpixel.com - www.freepik.com