Kubernetes Secrets is a secure way to store sensitive information within Kubernetes clusters, such as passwords, OAuth tokens, SSH keys, and other confidential data.
- Storage: Kubernetes Secrets stores sensitive data securely within the cluster's ETCD database.
- Base64 Encoding: Secrets are encoded in Base64 format to prevent plain-text exposure.
- Usage: Secrets can be mounted into pods as files or environment variables for secure access by applications.
- Access Control: Role-Based Access Control (RBAC) ensures only authorized entities can manage Secrets.
- Updates and Rotations: Secrets should be periodically rotated for enhanced security by generating new values.
- Secret Types: Kubernetes supports various Secret types tailored for different sensitive information.
- Immutable: Once created, Secrets cannot be updated directly; they must be recreated with new data.
#Create a Secret:
kubectl create secret
--from-literal==
#View Secrets:
kubectl get secrets
#View Secret Details:
kubectl describe secret
#Decode a Secret:
kubectl get secret -o jsonpath="{.data.}" | base64 --decode
#Delete a Secret:
kubectl create secret generic --from-file=
#Create a Secret from a File:
kubectl create secret generic --from-file=
#Create a TLS Secret:
kubectl create secret tls --cert= --key=
#Create a Docker Registry Secret:
kubectl create secret docker-registry --docker-server= --docker-username= --docker-password= --docker-email=
#Mount a Secret as a Volume (in a Pod's YAML):
volumes:
- name:
secret:
secretName:
#Use a Secret as an Environment Variable (in a Pod's YAML):
env:
- name:
valueFrom:
secretKeyRef:
name:
key: