K8s 환경변수 (ConfigMap)

Yuno·2025년 4월 6일

쿠버네티스 K8s

목록 보기
6/7

🚀 K8s 의 환경변수

개념설명
ConfigMap설정 파일이나 환경 변수처럼 민감하지 않은 값 저장
Secret비밀번호, API 키 등 민감한 정보 저장 (암호화됨)
  • Pod 가 이 값들을 환경변수로 주입받아 실행되는 방법

🚀 ConfigMap 실습해보기

🛠️ Step 1: Spring Boot 코드 수정

✅ 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;
  }
}

🛠️ Step 2: Docker 이미지 새로 빌드

./gradlew build
docker build -t spring-k8s-demo:config .

🛠️ Step 3: ConfigMap 생성

✅ configmap.yaml 파일 생성

apiVersion: v1
kind: ConfigMap
metadata:
  name: spring-config
data:
  GREETING_MESSAGE: "Hello from ConfigMap!"

✅ 적용하기

kubectl apply -f configmap.yaml

🛠️ Step 4: Deployment 에 ConfigMap 연결

✅ 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

🛠️ Step 5: 결과 확인

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 로 브라우저에서 접근

profile
Hello World

0개의 댓글