| 개념 | 설명 |
|---|---|
| ConfigMap | 설정 파일이나 환경 변수처럼 민감하지 않은 값 저장 |
| Secret | 비밀번호, API 키 등 민감한 정보 저장 (암호화됨) |
✅ application.properties 에 설정 추가
greeting.message=${GREETING_MESSAGE:Hello from default!}
✅ 기존 컨트롤러 수정
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("${greeting.message}")
private String greetingMessage;
@GetMapping("/hello")
public String hello() {
return greetingMessage;
}
}
./gradlew build
docker build -t spring-k8s-demo:config .
✅ configmap.yaml 파일 생성
apiVersion: v1
kind: ConfigMap
metadata:
name: spring-config
data:
GREETING_MESSAGE: "Hello from ConfigMap!"
✅ 적용하기
kubectl apply -f configmap.yaml
✅ spring-k8s-deployment.yaml 수정
containers:
- name: spring-k8s-demo
image: spring-k8s-demo:config
imagePullPolicy: Never
ports:
- containerPort: 8080
env:
- name: GREETING_MESSAGE
valueFrom:
configMapKeyRef:
key: GREETING_MESSAGE
name: spring-config
✅ 적용하기
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:61229 |
|-----------|--------------------|-------------|------------------------|
🎉 Opening service default/spring-k8s-service in default browser...
❗ darwin 에서 Docker 드라이버를 사용하고 있기 때문에, 터미널을 열어야 실행할 수 있습니다
👉 제공받은 http://127.0.0.1:61229/hello 로 브라우저에서 접근
