출제 문제
※ 기억에 의존해 복기하는 문제라 오류가 있을 수 있습니다.
참고만 부탁 드립니다.
- postgres deployment의 env에 하드코딩 된 argument를 참고하여 secret 생성
secret name : postgres
namespace : devops
key name : username, database, password - 생성된 postgres secret을 postgres deployment의 env에 하드코딩 된 argument를 수정 반영
※ postgres deployment YAML파일을 제공하고 수정해서 재배포하라고 나왔을 수 있음
# Kubernetes 메뉴얼
https://kubernetes.io/docs/tasks/configmap-secret/managing-secret-using-kubectl/
https://kubernetes.io/docs/tasks/inject-data-application/distribute-credentials-secure/
# postgres deployment의 env 확인
$ kubectl describe deployment -n devops postgres | grep -A3 Environment
Environment:
PG_USERNAME: pgadmin
PG_DATABASE: pgdatabase
PG_PASSWORD: pgpwd1234
# Secret 생성 $ kubectl create secret generic postgres --from-literal=username=pgadmin --from-literal=database=pgdatabase --from-literal=password=pgpwd1234 -n devops $ kubectl get secrets -n devops
# 제공된 postgres deployment의 yaml 수정 및 저장
$ vi postgres-deployment.yaml
...
spec:
containers:
- name: postgres
image: postgres:stable
env:
- name: PG_USERNAME
valueFrom:
secretKeyRef:
name: postgres
key: username
- name: PG_DATABASE
valueFrom:
secretKeyRef:
name: postgres
key: database
- name: PG_PASSWORD
valueFrom:
secretKeyRef:
name: postgres
key: password
...
# deployment 재배포
$ kubectl apply -f postgres-deployment.yaml
# Environment 값 확인
$ kubectl describe deployment -n devops postgres