GitHub

https://github.com/Choidongjun0830

클라우드

환경 변수

gogi masidda 2024. 11. 28. 21:10
#Plain Key Value
env:
- name: APP_COLOR
  value: pink
  
#ConfigMap
env:
- name: APP_COLOR
  valueFrom:
    configMapKeyRef:
      name: configmapname
#Secret
env:
- name: APP_COLOR
  valueFrom:
    secretKeyRef:

ConfigMap

  • 설정할게 많을 경우에는 Pod yaml에 하나하나 적기 번거로움 
  • 다른 파일에서 가져와서 Pod에 추가할 수 있고, ConfigMap에서 한꺼번에 관리 가능 
  • 키 - 값으로 구성됨 
  • Pod가 생성되면 키 - 값 쌍이 환경변수로 사용될 수 있게 함 
apiVersion: v1
kind: ConfigMap
metadata:
  name: app-config
data:
  APP_COLOR: blue
  APP_MODE: prod
  키: 값

ConfigMap Data 보기 

kubectl describe configmap <configmap name>

 

ConfigMap data 전체 Pod에 넣기

envFrom:
  configMapRef:
    name: app-config

 

ConfigMap data 몇개만 Pod에 넣기

env:
- name: APP_COLOR
  valueFrom:
    configMapKeyRef:
      name: app-config
      key: APP_COLOR

 

Volume으로 넣기

volumes:
- name: app-config-volume
  configMap:
    name: app-config

Secrets

  • ConfigMap과 비슷하지만, 더 민감한 정보를 저장 
kubectl create secret generic <secret name> --from-literal=DB_Host=mysql ...
  • 위처럼 생성할 수 있지만, 너무 많으면 secret.yaml을 만들기 
apiVersion: v1
kind: Secret
metadata:
  name: app-secret
data:
  DB_HOST: mysql
  DB_USER: root
  ...
  • echo -n 'mysql' | base64 처럼 base64로 인코딩 필요
  • echo -n 'mysql' | base64 --decode 로 디코딩  
apiVersion: v1
kind: Pod
metadata:
  name: simple-webapp-color
  labels:
    name: simple-webapp-color
spec:
  containers:
  - name: simple-webapp-color
    image: simple-webapp-color
    ports:
    - containerPort: 8080
    envFrom:
    - secretRef:
        name: app-secret

 

envFrom:
- secretRef:
    name: app-config
    
---

env:
- name: DB_password
  valueFrom:
    secretKeyRef:
      name: app-secret
      key: DB_Password 
      
---

volumes:
- name: app-secret-volume
  secret:
    secretName: app-secret
  • 인코딩된것이지 암호화된 것이 아니다.
    • 디코딩하면 아무나 볼 수 있다.  
    • 별도의 암호화 도구가 필요함. 
728x90

'클라우드' 카테고리의 다른 글

Rolling Updates and Rollbacks  (0) 2024.11.28
Kube-proxy  (0) 2024.11.23
API Server  (0) 2024.11.22
DOCKER VS CONTAINERD  (0) 2024.11.22
Kubernetes Principles  (0) 2024.10.15