| 개념 | 설명 |
|---|---|
| ConfigMap | 설정 파일이나 환경 변수처럼 민감하지 않은 값 저장 |
| Secret | 비밀번호, API 키 등 민감한 정보 저장 (암호화됨) |
✅ application.properties 에 설정 추가
secret.token=${MY_SECRET_TOKEN:default-secret}
✅ 기존 컨트롤러 수정
package com.springk8sdemo;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@Value("${secret.token}")
private String secretToken;
@GetMapping("/secret")
public String secret() {
return "🔐 Secret Token: " + secretToken;
}
}
./gradlew build
docker build -t spring-k8s-demo:secret .
✅ Secret 키 Base64 로 암호화 하기
https://www.base64encode.org/ 에서 간단히 암호화 하기
✅ secret.yaml 파일 생성
apiVersion: v1
kind: Secret
metadata:
name: my-secret
type: Opaque
data:
MY_SECRET_TOKEN: c3ByaW5nYm9vdC1teS1zZWNyZXQta2V5
✅ 적용하기
kubectl apply -f secret.yaml
✅ spring-k8s-deployment.yaml 수정
containers:
- name: spring-k8s-demo
image: spring-k8s-demo:secret
imagePullPolicy: Never
ports:
- containerPort: 8080
env:
- name: MY_SECRET_TOKEN
valueFrom:
secretKeyRef:
key: MY_SECRET_TOKEN
name: my-secret
✅ 적용하기
kubectl apply -f spring-k8s-deployment.yaml
minikube service spring-k8s-service
→ 반환
|-----------|--------------------|-------------|---------------------------|
| NAMESPACE | NAME | TARGET PORT | URL |
|-----------|--------------------|-------------|---------------------------|
| default | spring-k8s-service | 8080 | http://192.168.49.2:30080 |
|-----------|--------------------|-------------|---------------------------|
🏃 spring-k8s-service 서비스의 터널을 시작하는 중
|-----------|--------------------|-------------|------------------------|
| NAMESPACE | NAME | TARGET PORT | URL |
|-----------|--------------------|-------------|------------------------|
| default | spring-k8s-service | | http://127.0.0.1:63101 |
|-----------|--------------------|-------------|------------------------|
🎉 Opening service default/spring-k8s-service in default browser...
❗ darwin 에서 Docker 드라이버를 사용하고 있기 때문에, 터미널을 열어야 실행할 수 있습니다
👉 제공받은 http://127.0.0.1:63101/secret 로 브라우저에서 접근
