컨피그맵 디플로이먼트 오류 해결

그린·2023년 12월 6일
0

오류

목록 보기
13/17

처음에 무지성으로,, 강의자료를 따라하다가,,,
컨피그맵을 다음과 같이 만들었고

apiVersion: v1
kind: ConfigMap
metadata:
  name: env-config
data:
  datasource_url : jdbc:mysql://mysql-0.mysql.default.svc.cluster.local:3306/com02?characterEncoding=UTF-8&ServerTimezone=UTC
  datasource_username : root
  datasource_password : (비밀번호)
  mail_username : com02charge@gmail.com
  mail_password : (메일앱비밀번호)

파드에 환경변수를 설정해주었고

apiVersion: v1
kind: Pod
metadata:
  name: web-apl
spec:
  containers:
  - name: web
    image: nginx
    env:
    - name: DB_URL ## 컨테이너 환경 변수명
      valueFrom:
        configMapKeyRef:
          name: env-config ## 컨피그맵명
          key: datasource_url ## 키 항목
    - name: DB_USERNAME ## 컨테이너 환경 변수명
      valueFrom:
        configMapKeyRef:
          name: env-config ## 컨피그맵명
          key: datasource_username ## 키 항목
    - name: DB_PASSWORD ## 컨테이너 환경 변수명
      valueFrom:
        configMapKeyRef:
          name: env-config ## 컨피그맵명
          key: datasource_password ## 키 항목
    - name: MAIL_USERNAME ## 컨테이너 환경 변수명
      valueFrom:
        configMapKeyRef:
          name: env-config ## 컨피그맵명
          key: mail_username ## 키 항목
    - name: MAIL_PASSWORD ## 컨테이너 환경 변수명
      valueFrom:
        configMapKeyRef:
          name: env-config ## 컨피그맵명
          key: mail_password ## 키 항목

디플로이먼트를 따로 지정해주었었는데,,,

## 디플로이먼트
apiVersion: apps/v1
kind: Deployment
metadata:
  name: web-deploy-parktest5
spec:
  replicas: 3
  selector:           # deployment - pod 대응용
    matchLabels:
      app: web-parktest5
  template:           # 여기서부터 파드 템플릿
    metadata:
      labels:
        app: web-parktest5      # 파드의 라벨
    spec:
      containers:
      - name: com02-parktest5
        image: minyeongpark5/com02-cgmtest:0.0.4

$ kubectl logs web-deploy-parktest5-58c475c9df-9zsc6 파드를 직접 확인해보았을 때

아래와 같은 오류를 배출했다.
  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v3.1.4)

2023-12-06T10:03:47.761Z  INFO 1 --- [           main] c._.c.Com02BackendProjectApplication     : Starting Com02BackendProjectApplication v0.0.1-SNAPSHOT using Java 17.0.2 with PID 1 (/app.jar started by root in /)
2023-12-06T10:03:47.767Z  INFO 1 --- [           main] c._.c.Com02BackendProjectApplication     : No active profile set, falling back to 1 default profile: "default"
2023-12-06T10:03:49.629Z  INFO 1 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.
2023-12-06T10:03:49.814Z  INFO 1 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 170 ms. Found 3 JPA repository interfaces.
2023-12-06T10:03:51.295Z  INFO 1 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2023-12-06T10:03:51.320Z  INFO 1 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2023-12-06T10:03:51.321Z  INFO 1 --- [           main] o.apache.catalina.core.StandardEngine    : Starting Servlet engine: [Apache Tomcat/10.1.13]
2023-12-06T10:03:51.569Z  INFO 1 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2023-12-06T10:03:51.572Z  INFO 1 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 3648 ms
2023-12-06T10:03:52.423Z  INFO 1 --- [           main] o.hibernate.jpa.internal.util.LogHelper  : HHH000204: Processing PersistenceUnitInfo [name: default]
2023-12-06T10:03:52.569Z  INFO 1 --- [           main] org.hibernate.Version                    : HHH000412: Hibernate ORM core version 6.2.9.Final
2023-12-06T10:03:52.584Z  INFO 1 --- [           main] org.hibernate.cfg.Environment            : HHH000406: Using bytecode reflection optimizer
2023-12-06T10:03:52.918Z  INFO 1 --- [           main] o.h.b.i.BytecodeProviderInitiator        : HHH000021: Bytecode provider name : bytebuddy
2023-12-06T10:03:53.387Z  INFO 1 --- [           main] o.s.o.j.p.SpringPersistenceUnitInfo      : No LoadTimeWeaver setup: ignoring JPA class transformer
2023-12-06T10:03:53.426Z  INFO 1 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...
2023-12-06T10:03:55.477Z ERROR 1 --- [           main] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Exception during pool initialization.

java.sql.SQLException: Access denied for user '${DB_USERNAME}'@'10.44.2.195' (using password: YES)

이렇게 오류가 났었다... 환경변수를 못 반영하고 있는 오류...

팀원과 함께 오류를 찾아보던 중,,,

파드에만 환경변수를 적용했기 때문이라는 것을 알게 되었고...

## 디플로이먼트
apiVersion: apps/v1
kind: Deployment
metadata:
  name: web-deploy-parktest5
spec:
  replicas: 3
  selector:           # deployment - pod 대응용
    matchLabels:
      app: web-parktest5
  template:           # 여기서부터 파드 템플릿
    metadata:
      labels:
        app: web-parktest5      # 파드의 라벨
    spec:
      containers:
      - name: com02-parktest5
        image: minyeongpark5/com02-cgmtest:0.0.4
        env:
            - name: DB_URL ## 컨테이너 환경 변수명
              valueFrom:
                configMapKeyRef:
                  name: env-config ## 컨피그맵명
                  key: datasource_url ## 키 항목
            - name: DB_USERNAME ## 컨테이너 환경 변수명
              valueFrom:
                configMapKeyRef:
                  name: env-config ## 컨피그맵명
                  key: datasource_username ## 키 항목
            - name: DB_PASSWORD ## 컨테이너 환경 변수명
              valueFrom:
                configMapKeyRef:
                  name: env-config ## 컨피그맵명
                  key: datasource_password ## 키 항목
            - name: MAIL_USERNAME ## 컨테이너 환경 변수명
              valueFrom:
                configMapKeyRef:
                  name: env-config ## 컨피그맵명
                  key: mail_username ## 키 항목
            - name: MAIL_PASSWORD ## 컨테이너 환경 변수명
              valueFrom:
                configMapKeyRef:
                  name: env-config ## 컨피그맵명
                  key: mail_password ## 키 항목

이렇게 아예 디플로이먼트를 만들어줄 때 아래에 환경변수를 설정해주었고...
적용해서 디플로이먼트와 파드들을 만들어주고!

파드들이 잘 돌아가는 상태!
pod/web-deploy-parktest5-794584fbb7-mhmb4
pod/web-deploy-parktest5-794584fbb7-p2c5h
pod/web-deploy-parktest5-794584fbb7-sxrtg

서비스의 loadbalancer의 external ip 주소로 접속해보면!!

잘 뜬다!!!! 와아아아아아아 도와준 팀원아,,, 정말 감사합니다..

컴피그맵 만들 때 참고한 글
https://jeongwoo.tistory.com/120
https://aws-diary.tistory.com/131

profile
기록하자

0개의 댓글