![[인프런 워밍업 클럽 4기] 미션 3. ConfigMap, Secret 응용과제](https://cdn.inflearn.com/public/files/blogs/420ac260-7455-48ee-bc42-2c41c360c92c/쿠버네티스_데브옵스_썸네일.jpg)
[인프런 워밍업 클럽 4기] 미션 3. ConfigMap, Secret 응용과제
7일 전
▶ 응용1 : Configmap의 환경변수들을 Secret을 사용해서 작성하고, App에서는 같은 결과가 나오도록 확인해 보세요.
☞ Secret을 이렇게 사용하는 경우는 별로 보지 못했습니다. 여러가지 방법으로 Secret을 만들어본다는데 의의를 두시면 됩니다.
[Secret 생성]
apiVersion: v1
kind: Secret
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
stringData:
spring_profiles_active: "dev"
application_role: "ALL"
postgresql_filepath: "/usr/src/myapp/datasource/dev/postgresql-info.yaml"
변경 지점. Deployment
[기존. Pod 환경변수 참조 - ConfigMap]
envFrom:
- configMapRef:
name: api-tester-1231-properties
[변경. Pod 환경변수 참조 - Secret]
envFrom:
- secretRef:
name: api-tester-1231-properties
[결과]
▶ 응용2 : 반대로 Secret의 DB정보를 Configmap으로 만들어보고 App을 동작시켜 보세요
☞ Configmap을 Volume에 연결해서 쓰는 케이스는 매우 많습니다.
apiVersion: v1
kind: ConfigMap
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
data:
postgresql-info.yaml: |
driver-class-name: "org.postgresql.Driver"
url: "jdbc:postgresql://postgresql:5431"
username: "dev"
password: "dev123"
[기존. Deployment의 volumeMounts.name]
volumeMounts:
- name: files
mountPath: /usr/src/myapp/files/dev
- name: secret-datasource
volumes:
- name: files
persistentVolumeClaim:
claimName: api-tester-1231-files
- name: secret-datasource
secret:
secretName: api-tester-1231-postgresql
defaultMode: 420
[변경. Deployment의 volumeMounts.name 과 volumes 부분 업데이트]
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: anotherclass-123
name: api-tester-1231
spec:
template:
spec:
nodeSelector:
kubernetes.io/hostname: k8s-master
containers:
- name: api-tester-1231
image: 1pro/api-tester:v1.0.0
volumeMounts:
- name: configmap-datasource
mountPath: /usr/src/myapp/datasource/dev
volumes:
- name: configmap-datasource
configMap:
name: api-tester-1231-postgresql
[결과]
댓글을 작성해보세요.