프로그래밍

프로그래밍/Docker

따배쿠 정리 2 - PC에 쿠버네티스 설치하기

쿠버네티스 클러스터를 직접 구성하는 도구 kubeadm 공식 설치툴 쿠버네티스에서 공식으로 제공하는 클러스터 생성/관리 도구 kubespray 오픈소스 프로젝트 다양한 형식으로 쿠버네티스 클러스터 구성가능 On-premise에서 상용 서비스 클러스터 운영시 유용 다양한 CNI 제공 CNI(Container Network Interface) 컨테이너 - 컨테이너 간 통신 인터페이스를 지원하는 SW 쿠버네티스 사용시 반드시 설치 VxLAN, Pod Network 라고도 표현 쿠버네티스 클러스터 구성 Control Plane(Master node) - 관리 워커 노드들의 상태를 관리하고 제어 Worker node - 실제 App 실행 도커 플랫폼을 통해 컨테이너를 동작하며 실제 서비스 제공 설치 순서 도커 설..

프로그래밍/k8s

따배쿠 정리 - 1

1. 가상머신 vs 컨테이너 가상머신 (VM) 방식과 컨테이너 방식은 둘 다 애플리케이션을 실행하기 위한 가상화 기술입니다. 그러나 각각의 방식은 목적과 특징이 다르며, 아래에서 더 자세한 설명을 제공해 드리겠습니다. 가상머신 (VM) 방식:가상머신은 호스트 시스템 위에 여러 개의 게스트 운영체제를 가상화하여 실행하는 기술입니다. 각 게스트 운영체제는 독립된 환경을 가지며, 가상화 레이어를 통해 호스트 시스템 위에서 동작합니다. 장점: 호스트와 게스트 운영체제 사이의 완전한 격리로 인해 보안성이 높습니다. 서로 다른 운영체제의 애플리케이션을 실행할 수 있습니다. 호스트 시스템의 가상 리소스를 할당하여 사용 가능한 성능을 높일 수 있습니다. 단점: 각 가상머신마다 운영체제가 필요하므로 무겁고 비용이 많이 ..

프로그래밍/Docker

Docker Run 명령어

Docker run 기본 형식 docker run [옵션] [이미지이름 or 이미지ID] [실행할 파일] 위는 도커 이미지를 실행하는 명령어로서 여러 옵션이 존재한다. 옵션에 대해 차근차근 알아보자 -it docker run -it ... 위와 같은 형식으로 쓰이며 사용자가 입출력을 할 수 있는 -i 옵션과 가상 터미널 환경을 에뮬레이션 하겠다는 -t 옵션을 합친 것으로 입출력할 수 있는 가상 터미널 환경으로 실행하는 옵션이다. 주로 bash/sh로 바로 접속한다. -d docker run -d 해당 옵션은 컨테이너를 백그라운드로 실행하겠다는 의미 -p docker run -d -p 5000:5000 컨테이너의 포트를 설정하는 옵션으로 호스트인 5000 포트에 들어오는 요청을 특정 컨테이너:5000으로 ..

프로그래밍/Docker

Docker 개요

Docker 가 왜 필요한가? 새로운 환경에 개발환경을 구성한다고 가정해 보자. 스프링 환경을 구축한다면 자바, DB, 메시징 큐 등의 여러 개발 필수 요소들을 설치해야 한다. 이는 오래 걸리기도 하고 OS마다 다른 호환성, 개발/스테이지/운영 서버 각각에 맞는 환경을 해줘야하는 번거로움이 있다. 이를 해결하기 위해 도커가 필요하다. Docker는 무엇을 할 수 있는가? 하나의 OS 에 Docker를 도입함으로써 아래와 같은 예시로 여러 개의 컨테이너를 가동할 수 있다. Web Server Container Database Container Messaging Container 이 서비스들은 분리된 컨테이너에서 각각의 의존성과 라이브러리를 갖추므로 분리된 환경을 구성할 수 있다. 이는 협업적인 측면에서도 ..

프로그래밍/Docker

Docker 명령어

docker run : 도커 컨테이너를 시작하는 명령어 docker stop : 도커 컨테이너를 종료하는 명령어 docker ps : 컨테이너 리스트 정보를 보여주는 명령어 docker ps -a : 모든 컨테이너 리스트 정보를 보여주는 명령어 docker rm : 도커 컨테이너를 삭제하는 명령어 docker image : 도커 이미지의 리스트를 보여주는 명령어 docker rmi : 도커 이미지를 삭제하는 명령어 docker pull : 도커 이미지만 다운로드하는 명령어 docker exec: 도커 컨테이너에 접속하는 명령어 docker inspect : 도커 컨테이너 상세정보 확인하는 명령어 docker logs : 도커 컨테이너의 로그를 확인하는 명령어

프로그래밍/Spring

[Spring] application.yml과 application.properties 차이

배경 Spring을 공부하고 있다면 어쩔 수 없이 마주치는 것이 .yml과. properties이다. 겉으로 보기엔 별 차이가 없어 보여서 도대체 무슨 차이가 있는 건지 궁금해서 찾아해보았다. 개념 먼저 둘의 공통점을 말하자면 포트, 데이터베이스 연결 정보 등의 프로그램이 실행되는데 필요한 구성 속성을 갖고 있는 파일이다. 이것을 사용하는 이유는 타 시스템과 연동할 때 생기는 문제를 방지하기 위해서이다. 개인마다 변수명을 정하거나 메서드를 만드는 것처럼 데이터를 표현하는 방식은 다르기 때문에 이러한 서로 다른 방식들을 통일시키고 관리하기 쉽게 그리고 가독성을 높이기 위해 사용한다. 차이 YAML(.yml) .properties 스펙을 찾을 수 있다(링크) 자체적으로 스펙을 알 수 있는 사이트가 없다. 그..

프로그래밍/Spring

[Spring] Spring Cloud Eureka Server를 만들어보자

개념 Spring Cloud Eureka는 Client-Side Service Discovery라고도 부른다. 이는 호스트, 포트 하드코딩 없이 서비스가 서로를 찾고 통신할 수 있으며 서비스들의 로드 밸런싱, 장애 조치에 도움을 주는 미들웨어이다. 기본적으로 서버-클라이언트 구조로 서버는 서비스들의 가용성을 등록하는 레지스트리이다. 이때 레지스트리란 서비스 연결 정보를 말한다. 서버에 등록될 때는 서비스 ID, URL이 등록되며 서비스는 서비스 ID를 통해 접근 가능하다. 기본적인 흐름은 아래와 같다. Eureka Client 서비스가 시작되면 Eureka Server에 정보가 등록된다 Eureka Client는 Server로부터 다른 Client의 레지스트리를 받아 저장한다. 30초마다 Server로부..

프로그래밍/Java

[Java] JAR 와 WAR의 차이

배경 그동안 스프링 부트 프로젝트 생성 시 패키지 생성 부분에서 무작정 Jar를 선택해왔다. 갑자기 가만 보니 저 둘은 무슨 차이가 있는지 잘 모르고 있다는 것을 알았다. 그래서 각 용어의 개념들을 보고 Spring Boot 기반의 프로젝트는 어떤 걸 선택하는지 알아보겠다. 개념 JAR(Java ARchive, 자바 아카이브) 여러 개의 자바 클래스 파일과 클래스들이 이용하는 관련 리소스(텍스트, 그림 등) 및 메타데이터를 하나의 파일로 모아서 자바 플랫폼에 응용 소프트웨어나 라이브러리를 배포하기 위한 소프트웨어 패키지 파일 포맷 데스크톱 애플리케이션에서 구동 WAR(Web application ARchive, 웹 애플리케이션 아카이브) JSP, Servlet, Class, XML, 태그 라이브러리, 정..

옥탑방고래
'프로그래밍' 카테고리의 글 목록