![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/y7Sax/btsI0gF3rN5/z5FeHqFOzvoVPa7raVrAi0/img.png)
Skaffold는 Kubernetes 환경에서 애플리케이션을 개발하고 배포하는 과정을 자동화하고 간소화해주는 오픈 소스 도구입니다. Google에서 개발한 이 도구는 Kubernetes 클러스터에서 애플리케이션을 반복적으로 빌드, 테스트, 배포하는 작업을 관리하기 쉽게 만들어줍니다. Skaffold는 로컬 개발 환경부터 클라우드 기반 CI/CD 파이프라인에 이르기까지 다양한 환경에서 사용할 수 있습니다.Skaffold의 주요 특징빌드, 푸시, 배포의 자동화:Skaffold는 애플리케이션의 빌드, 푸시(이미지를 컨테이너 레지스트리에 업로드), 그리고 배포 작업을 자동으로 처리합니다. Skaffold는 Docker, JIB, Buildpacks, Bazel과 같은 빌드 도구를 지원하며, 사용자는 자신에게 맞..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/nLer9/btsI0ETZJq3/bbwyaF9lyhKkBF07XALMvk/img.png)
JIB는 Java 애플리케이션을 컨테이너 이미지로 빌드하고 배포할 수 있도록 도와주는 도구입니다. JIB는 Google에서 개발한 오픈 소스 Gradle 및 Maven 플러그인으로, Java 개발자들이 컨테이너 이미지를 만들 때 Dockerfile이나 도커 명령어를 직접 작성하지 않고도 쉽게 이미지를 생성할 수 있도록 도와줍니다.JIB의 주요 특징Docker 환경이 필요하지 않음:JIB는 도커 데몬이 필요하지 않기 때문에, Docker가 설치되지 않은 환경에서도 사용할 수 있습니다. 이것은 CI/CD 파이프라인을 구성할 때 유용하며, 복잡한 도커 환경 설정 없이도 컨테이너 이미지를 생성할 수 있다는 장점이 있습니다.효율적인 이미지 빌드:JIB는 레이어 캐싱(layer caching)을 사용하여 빌드 시간..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bdazYD/btsAF3VQGSp/fazTqGnmmQPWuXFlqT45kk/img.png)
아래 스펙으로 도커 이미지를 생성하려고 합니다. jdk-17 Spring Boot 3.1.5 Spring Reactive Web Gradle 도커 컨테이너를 실행 후 아래 RESTful API를 요청 시 응답되는지 확인하는 것이 목적입니다. GET, http://localhost:8080/hello 컨트롤러 코드는 아래와 같습니다. @RestController public class DemoController { @GetMapping("/greeting") public Mono greeting(){ return Mono.fromSupplier(() -> { final int now_hour = LocalTime.now().getHour(); final int num = now_hour < 12 ? 1 :..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/tUwZc/btsAMq2GoDc/zVfMAtBxhVVqxh2nj36JLK/img.png)
Docker를 사용하여 로드 밸런서와 두 개의 서버(컨테이너)를 연결하는 환경을 구축하는 과정은 다음과 같습니다. 이 예시에서는 Nginx를 로드 밸런서로 사용하고, 두 개의 간단한 웹 서버 컨테이너를 로드 밸런싱합니다. 1단계: Docker 네트워크 생성 먼저, 모든 컨테이너가 서로 통신할 수 있도록 Docker 네트워크를 생성합니다. docker network create my-network 생성된 네트워크는 아래 명령어로 확인할 수 있습니다. docker network ls 2단계: WAS 컨테이너 실행 두 개의 WAS를 실행합니다. 이들은 외부에 직접 노출되지 않고, 로드 밸런서를 통해서만 접근 가능합니다. WAS: https://developer-syubrofo.tistory.com/213 do..