반응형
ConfigMap
https://kubernetes.io/ko/docs/concepts/configuration/configmap/
key-value 쌍으로 이루어진 데이터를 저장하는데 사용하는 API Object이다.
pod는 volume에서 environment variables, command-line argument 로 configmap을 사용할 수 있다.
configmap은 암호화를 제공하지 않으므로 계정/비밀번호 같은 데이터는 secret을 사용하면 된다.
기본적인 구성은 다음과 같다.
일반적인 key/value 쌍으로 이루어진 데이터
key를 파일이름으로, value를 파일의 내용으로 구성할 수도 있다.
apiVersion: v1
kind: ConfigMap
metadata:
name: game-demo
data:
# 속성과 비슷한 키; 각 키는 간단한 값으로 매핑됨
player_initial_lives: "3"
ui_properties_file_name: "user-interface.properties"
# 파일과 비슷한 키
game.properties: |
enemy.types=aliens,monsters
player.maximum-lives=5
user-interface.properties: |
color.good=purple
color.bad=yellow
allow.textmode=true
Secret
https://kubernetes.io/ko/docs/concepts/configuration/secret/
secret은 configMap과 사용이 거의 동일하며 차이는 민감한 데이터를 암호화 처리로 관리한다는 점이다.
내 경우 기존에 다음과 같이 mariadb의 password를 선언하였었다.
apiVersion: apps/v1
kind: Deployment
metadata:
name: mariadb-deployment
labels:
app: mariadb
spec:
replicas: 1
selector:
matchLabels:
app: mariadb
template:
metadata:
labels:
app: mariadb
spec:
containers:
- name: mariadb
image: mariadb
ports:
- containerPort: 3306
env:
- name: MARIADB_ROOT_PASSWORD
value: "root"
args: ["--character-set-server=utf8mb4", "--collation-server=utf8mb4_unicode_ci"]
volumeMounts:
- name: mariadb-volume
mountPath: /var/lib/mysql
volumes:
- name: mariadb-volume
persistentVolumeClaim:
claimName: mariadb-pvc
password를 secret으로 다음과 같이 선언하고
apiVersion: v1
kind: Secret
metadata:
name: mariadb-secret
labels:
app: mariadb-secret
data:
mariadb-root-password: cm9vdA==
기존의 설정을 다음과 같이 변경하였다.
apiVersion: apps/v1
kind: Deployment
metadata:
name: mariadb-deployment
labels:
app: mariadb
spec:
replicas: 1
selector:
matchLabels:
app: mariadb
template:
metadata:
labels:
app: mariadb
spec:
containers:
- name: mariadb
image: mariadb
ports:
- containerPort: 3306
env:
- name: MARIADB_ROOT_PASSWORD
valueFrom:
secretKeyRef:
key: mariadb-root-password
name: mariadb
args: ["--character-set-server=utf8mb4", "--collation-server=utf8mb4_unicode_ci"]
volumeMounts:
- name: mariadb-volume
mountPath: /var/lib/mysql
volumes:
- name: mariadb-volume
persistentVolumeClaim:
claimName: mariadb-pvc
volume 설정을 persistentVolumeClaim으로 사용하게 되었다.
secret의 경우 단순히 base64로 인코딩하여 값을 사용한다.
저장된 secret 에 대한 읽기 쓰기를 제한하여 보안을 관리한다.
반응형
'Study > Docker & Kubernetes' 카테고리의 다른 글
kubernetes에 Promtail, Loki 사용해 보기 (1) | 2023.03.21 |
---|---|
kubernetes에 OpenTelemetry Collector, Grafana Tempo를 설치하고 tracing 구현해 보기 (2) | 2023.03.18 |
helm chart로 kubernetes yaml 파일 만들기 (0) | 2023.03.17 |
kubernetes에 sonarqube 설치 & jenkins에서 사용해 보기 (0) | 2023.03.16 |
kubernetes에 Prometheus, Grafana 설치하고 metric 정보 수집해 보기 (1) | 2023.03.15 |
kubernetes PersistentVolume, PersistentVolumeClaim 사용해 보기 (0) | 2023.03.11 |
Rancher Desktop에서 docker 명령어 사용하기 (0) | 2022.10.20 |
로컬 docker-desktop의 kubernetes (k8s)에 elasticsearch, kibana 설치해보기 (0) | 2022.10.08 |
Window에서 Docker Desktop 없이 docker, kubernetes 사용하기 (Rancher Desktop 사용하기) (0) | 2021.12.01 |
kubernetes kubectl 명령어 모음 (0) | 2021.08.13 |