Docker/Kubernetes와 Spring-Boot 및 Redis 연결
소개
이 기사에서는 spring-boot를 사용하여 Redis DB와 연결하고 이를 Kubernetes 클러스터에 배포하는 방법에 대해 알아봅니다.
전제 조건
Editor — IntelliJ Idea/Eclipse
언어 — Java 8 이상
프레임워크 — 스프링 부트
이미지 빌드 도구 — Docker
오케스트레이션 — Kubernetes(k8)
데이터베이스 — Redis
GIT 레포
https://github.com/shethaptech/spring-boot/tree/main/redis-counter-service
이제 설계로 이동하여 구현의 개요를 그립니다.
1. 디자인
Redis DB에 연결하기 위해 spring-boot 및 jedis 클라이언트를 사용하여 마이크로서비스를 설계할 것입니다. 이 응용 프로그램은 방문자가 우리 페이지를 방문할 때마다 방문자 카운터를 증가시킵니다.
높은 수준의 디자인
위의 하이레벨 디자인을 참고하시면,
→ "redis-counter-service"및 Redis db 서버 각각에 대해 2개의 포드가 실행됩니다.
→ 두 포드가 연결되고 ClusterIP 유형 k8s 서비스를 통해 통신합니다.
→ "redis-counter-service"용 포트 8080 및 Redis DB 서버용 포트 6379를 노출했습니다.
→ "redis-counter-service"는 포트 6379에서 k8s 서비스 "reddis-db-svc"를 사용하여 Redis DB에 연결합니다.
2. 레디스 DB 서버
Docker 이미지를 사용하여 Redis DB를 설치해 보겠습니다.
2.1 컨테이너 레지스트리에서 Redis 이미지를 가져옵니다.
docker pull Redis // this will fetch from docker hub by default
2.2 Docker 컨테이너 레지스트리에서 가져온 이미지를 사용하여 Redis 컨테이너를 만듭니다.
docker run -p 6379:6379 — name redis -d redis
2.3 Redis DB가 작동하는지 확인합니다.
docker exec -it redis sh
이 명령은 Redis 컨테이너의 bash로 이동합니다. 이는 Redis 컨테이너가 작동 중이고 연결할 수 있음을 의미합니다.
Redis sh 쉘
또한 Redis DB 컨테이너의 로그를 확인하여 시작 시 오류가 있는지 확인할 수 있습니다.
Redis 설치 후 로그
Redis DB가 실행 중이므로 서비스를 만들어 봅시다.
3. 스프링 부트 서비스 설정
3.1 Redis에 대한 Spring 데이터 JPA 종속성
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
3.2 Redis용 스프링 부트 자바 클라이언트
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.6.3</version>
</dependency>
3.3 구성
redis:
_# host: 127.0.0.1_
host: reddis-db-svc **_#this should be the k8s service name for Redis_**
port: 6379
코드 베이스는 git 저장소를 참조하십시오.
4. Docker 이미지 빌드 — Dockerfile
도커 이미지를 빌드하려면 아래 구성을 참조하십시오.
docker build -f <> -t <>
FROM java
ARG _ARTIFACT\_NAME_=redis-counter-service-0.0.1-SNAPSHOT.jar
ENV _ARTIFACT\_NAME_=${_ARTIFACT\_NAME_}
RUN mkdir /app
COPY target/${_ARTIFACT\_NAME_} /app/
CMD java -jar /app/${_ARTIFACT\_NAME_}
5. 컨테이너 오케스트레이션 — Kubernetes(k8s)
여기서는 컨테이너 오케스트레이션을 위해 Kubernetes(k8s)를 사용합니다.
k8s 배포 및 서비스 개체를 생성합니다.
코드 베이스는 git 저장소를 참조하십시오.
→ 아래 명령을 사용하여 K8s 개체를 배포합니다.
kubectl apply -f deployment.yaml
kubectl apply -f service.yaml
→ k8s 개체가 작동 및 사용 가능한지 확인합니다.
kubectl get svc
K8s 서비스
kubectl get pod
K8s 배치
6. 쇼타임
k8s 개체가 실행되면 아래 URL을 누르십시오. URL을 누를 때마다 방문 카운터가 증가합니다.
http://127.0.0.1:8080/counter/increment
주요 테이크 아웃
그럼 지금까지 배운 내용은,
→ 방문자 카운터 스프링 부트 서비스
→ 컨테이너화를 이용한 Redis DB 서버
→ 이미지를 구축하는 도커
→ Kubernetes 배포 및 서비스
Reference
이 문제에 관하여(Docker/Kubernetes와 Spring-Boot 및 Redis 연결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/shethapurv/spring-boot-redis-connectivity-with-dockerkubernetes-ege텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)