WalzoneInterview Prep
📞 Interviewing soon? Practice with a realistic AI mock phone interview — it calls you, then scores you. First 15 min FREE →

Kubernetes · Basic · question 15 of 100

What is a Kubernetes Secret and how does it differ from a ConfigMap?

📕 Buy this interview preparation book: 100 Kubernetes questions & answers — PDF + EPUB for $5

A Secret in Kubernetes is a way to store sensitive data such as passwords, tokens, and encryption keys as key-value pairs that can be used by containers in a Pod. Secrets are similar to ConfigMaps in that they allow for separation of sensitive data from application code, but Secrets are specifically designed to store confidential information that should be kept secure.

Here are some use cases for Secrets in Kubernetes:

Authentication: Secrets can be used to store authentication credentials such as passwords and access tokens for external services.

Encryption: Secrets can be used to store encryption keys and other sensitive data required for data encryption.

Application secrets: Secrets can be used to store application-specific secrets such as API keys and other sensitive data.

Here’s an example of using kubectl to create a Secret in Kubernetes:

apiVersion: v1
kind: Secret
metadata:
  name: my-secret
type: Opaque
data:
  username: dXNlcm5hbWU=
  password: cGFzc3dvcmQ=

This Secret contains two key-value pairs: username with a base64-encoded value of username, and password with a base64-encoded value of password. These values can be accessed by containers in a Pod using environment variables or command-line arguments.

Here’s an example of using kubectl to set environment variables using a Secret:

apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  containers:
  - name: my-container
    image: my-image:latest
    env:
    - name: USERNAME
      valueFrom:
        secretKeyRef:
          name: my-secret
          key: username
    - name: PASSWORD
      valueFrom:
        secretKeyRef:
          name: my-secret
          key: password

This Pod contains a container called my-container that uses the image my-image:latest. The env field sets the environment variables USERNAME and PASSWORD to the values of the username and password keys in the Secret my-secret.

The main difference between a ConfigMap and a Secret in Kubernetes is that Secrets are specifically designed to store sensitive data that should be kept secure. Secrets are stored in a way that prevents unauthorized access, and can be encrypted at rest to provide an additional layer of security. ConfigMaps, on the other hand, are used to store configuration data that is not necessarily sensitive.

In conclusion, a Secret in Kubernetes is a way to store sensitive data such as passwords, tokens, and encryption keys as key-value pairs that can be used by containers in a Pod. Secrets are similar to ConfigMaps in that they allow for separation of sensitive data from application code, but Secrets are specifically designed to store confidential information that should be kept secure. Understanding the differences between ConfigMaps and Secrets in Kubernetes is important for managing and securing containerized applications in a Kubernetes cluster.

Reading is step one. Saying it out loud is the interview. Our AI interviewer calls your phone and runs a realistic Kubernetes interview — then scores it.
📞 Practice Kubernetes — free 15 min
📕 Buy this interview preparation book: 100 Kubernetes questions & answers — PDF + EPUB for $5

All 100 Kubernetes questions · All topics