본문 바로가기
카테고리 없음

[k8s] Secrets & ConfigMap

by BTC_기범 2023. 10. 11.


안녕하세요. 이쁜이와 멋쟁이의 BTC_기범입니다.

오늘은 kubernetes에서 key, value 형태의 정보를 저장하는 데 사용할 수 있는

Secrets과 ConfigMap에 대해 알아보겠습니다.


Secrets

암호, 토큰 또는 키와 같이 타인에게 노출되는 것을 경계해야하는 키-값 쌍의 정보에 대해서 저장하는 객체입니다.
k8s 컨테이너에 환경변수로 적용하거나 Volume의 형태로 마운트시켜 사용할 수 있습니다.

ConfigMap

보안적으로 노출되어도 위험이 없는 키-값 쌍의 정보에 대해서 저장하는 객체입니다.

secrets와 같이 k8s 컨테이너에 환경변수로 적용하거나 Volume의 형태로 마운트 시켜 사용할 수 있습니다.

 

Mount를 통해 사용하기

Secrets Mount

# Secrets 생성
kubectl create secret generic mount-secret --from-literal=testmount=job

# mount
# 아래 내용의 yaml 생성 후 실행
apiVersion: v1
kind: Pod
metadata:
  name: secret-test-pod
spec:
  containers:
    - name: test-container
      image: nginx
      volumeMounts:
      - name: secret-volume
        mountPath: /etc/secret-volume
  volumes:
    - name: secret-volume
      secret:
        secretName: mount-secret

ConfigMap Mount

# ConfigMap 생성
kubectl create configmap mount-configmap --from-literal=testmount=job

# mount
# 아래 내용의 yaml 생성 후 실행
apiVersion: v1
kind: Pod
metadata:
  name: test-pod
spec:
  containers:
    - name: test-container
      image: busybox
      volumeMounts:
      - name: config-volume
        mountPath: /etc/config
  volumes:
    - name: config-volume
      configMap:
        name: mount-configmap

환경변수를 통해 사용하기

Secrets Env

# Secrets 생성
kubectl create secret generic env-secret --from-literal=testenv=good

# env에 포함
# 아래 내용의 yaml 생성 후 실행
apiVersion: v1
kind: Pod
metadata:
  name: test-secret-2
spec:
  containers:
  - name: test-container
    image: nginx
    env:
    - name: good
      valueFrom:
        secretKeyRef:
          name: env-secret
          key: testenv

ConfigMap Env

# ConfigMap 생성
kubectl create configmap env-configmap --from-literal=testenv=job

# mount
# 아래 내용의 yaml 생성 후 실행
apiVersion: v1
kind: Pod
metadata:
  name: test-pod
spec:
  containers:
    - name: test-container
      image: busybox
      env:
        - name: TEST_ENV
          valueFrom:
            configMapKeyRef:
              name: env-configmap
              key: testenv

지금까지 Secrets와 ConfigMap에 대해 알아보았습니다.

여러 파드들에 교차되어 공통적으로 사용되는 키-값 데이터에 대해 저장, 사용을 통해
좀 더 효율적인 k8s 운영을 하시데 도움이  되었으면 좋겠습니다.

다음에 또 봬요~!

댓글