
mysql을 연동하려면 현재 내가 사용하고 있는 ip를 확인해야한다. 와이파이 연결하고 있다는 전제 하에
cmd에 ipconfig를 입력해서 IPv4 주소를 확인해서 메모해둔다.
apiVersion: v1
kind: Service
metadata:
name: k8s-external-user-mysql-service
spec:
ports:
- port: 3306
---
apiVersion: v1
kind: Endpoints
metadata:
name: k8s-external-user-mysql-service
subsets:
- addresses:
- ip: 각자의 ip 주소 값
ports:
- port: 13306
build.gradle에서 밑의 두줄을 추가한다.
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
runtimeOnly 'com.mysql:mysql-connector-j:8.4.0'
spring:
datasource:
url: jdbc:mysql://k8s-external-user-mysql-service:3306/user?serverTimezone=UTC&useSSL=true&autoReconnect=true&useUnicode=true&characterEncoding=utf-8
username: user
password: 1234
driver-class-name: com.mysql.cj.jdbc.Driver
hikari:
connection-test-query: SELECT 1
validation-timeout: 5000
jpa:
hibernate:
ddl-auto: create
generate-ddl: true (spring.jpa.generate-ddl)
show-sql: true
open-in-view: false
주의 사항 : 뎁스 잘 확인!
이 이후에는 스프링 클라우드 프로젝트와 마찬가지로 Entity, Repository 등을 추가했다.
백엔드 코드 작업을 마친 후, 버전 업 등을 업데이트 하고 커밋, 푸쉬, 젠킨스 빌드, 쿠버네티스에서 버전 업 까지 명시하면 작업은 끝난다.
mysql연동과 마찬가지로 1. yaml 2. 백엔드 코드 작업 순으로 진행한다.
주의 사항은 ip에 현재 자신이 사용하고 있는 ip를 넣어야 한다.
implementation 'org.springframework.kafka:spring-kafka'
testImplementation 'org.springframework.kafka:spring-kafka-test'
(dev)
kafka:
bootstrap-servers: k8s-external-kafka-service:9092
(local)
kafka:
bootstrap-servers: 쓰고 있는 ip 주소:9092
비지니스 로직을 모두 작성 후, kafka docker compose yml도 자신의 ip주소로 수정해야 한다.
docker compose down -v -> remove
docker compose up -d -> create
현재 쿠버네티스는 백엔드 코드의 dev.yml에 맞춰서 실행되고 있다.
imagePullPolicy: Always
env:
- name: SPRING_PROFILES_ACTIVE
value: dev
ports:
- containerPort: 8080
오늘 실습을 진행하면서 deployment가 오류가 나는 상황이 계속되어 해결하기 위해 사용한 방법이다.
로컬에서 빌드 되는 것을 확인했고, sql 에디터에서 연결 오류가 나 db 오류라는 것을 짐작하고 있었다.
원인 : db가 떠있지 않았다.
해결 : docker compose up -d로 실행 완료 후 정상 동작 함을 확인했다.

원인 :
env:
-name: SPRING_PROFILES_ACTIVE
value: dev
dev.yml에 jdbc설정하고 쿠버네티스 yaml에 dev명시를 하지 않음.
해결 : 쿠버네티스 yaml에 env를 보완하고 해결.
api 호출을 할 때 서버 오류가 자꾸 발생하여 한참 해맸다.
kubectl get pods
kubectl logs -f 파드이름/id
쿠버네티스 오류가 아님을 확인하고 비지니스 로직을 확인.
원인 : yml의 kafka 코드 뎁스 오류
해결 : application과 kafka의 뎁스가 같아야 함을 확인하고 해결 완료.
