반응형
App에 외부변수 및 암호화된 데이를 주입
apiVersion: v1
kind: ConfigMap
metadata:
namespace: anotherclass-123
name: api-tester-1231-properties
labels:
part-of: k8s-anotherclass
component: backend-server
name: api-tester
instance: api-tester-1231
version: 1.0.0
managed-by: dashboard
data:
spring_profiles_active: "dev"
application_role: "ALL"
postgresql_filepath: "/usr/src/myapp/datasource/postgresql-info.yaml"
---
apiVersion: v1
kind: Secret
metadata:
namespace: anotherclass-123
name: api-tester-1231-postgresql
labels:
part-of: k8s-anotherclass
component: backend-server
name: api-tester
instance: api-tester-1231
version: 1.0.0
managed-by: dashboard
stringData:
postgresql-info.yaml: |
driver-class-name: "org.postgresql.Driver"
url: "jdbc:postgresql://postgresql:5431"
username: "dev"
password: "dev123"
data.spring_profiles_active = 어느환경인지 설정
data.application_role = 역활
postgresql_filepath = Secret 데이터로 연결할 파일경로
java -Dspring.profiles.active=${spring_profiles.active} 와 같이 Args적용
Secret : Base64로 저장, 복호화가능해서 보안적으로는 큰의미없음
- Configmap 에 중요정보를 넣어서써도 무관 그러나 환경변수를 로그에 찍거나 의도치않게 노출가능하기에 사용은 지양해야함
환경변수로 주입하냐 볼륨으로 주입하냐의 차이는
환경변수로 주입시 파드를 삭제하고 다시 만들어야적용이되지만 볼륨연결은 그럴필요가 없다
영역파괴의 주범인 Configmap > 커뮤니케이션이 중요
이름때문에 너무 기대가컸던 Secret
- 타입에 맞는 키가있음 (opaque, docker-registry, tls)
- 쿠버 권한을 잘관리하면 클러스터내에서 관리해도 문제없음
- 자체암호화 : 이러면 configmap 에서 써도됨
- 서드파티 : 예) vault
반응형