본문 바로가기

데이터 사이언스

[Kafka] 간단하게 보는 Kafka 등장 배경, 특징, 활용 사례 1. Kafka 등장배경 처음에는 그림 첫 번째와 같이 간단한 통신 시스템을 만들었다고 생각하자. Source system과 Target system을 1:1로 연결하면 되기 때문에 문제가 없어 보인다. 하지만 두 번째 사진처럼 Source sytem이 2개로 늘어나고, Target system을 3개로 늘리게 된다. 처음에는 연결이 한 개였지만 갑자기 연결이 6개로 늘어났다. 갑자기 시스템이 복잡하게 되기 시작한다. 그래서 Source는 보내기만 하고, Target 쪽에서는 알아서 읽게만 만들고 중간에 중재해 주는 것을 만들면 어떨까? 라는 생각에 등장하게 된 개념이 Apache Kafka이다. 중간에 시스템이 한 개가 생김으로써 Source와 Target은 일명 decoupling이 된다. 2. Ka.. 더보기
[Window][Docker] 도커에서 파일 실행 시 오류 1. 오류메세지 error during connect: in the default daemon configuration on Windows, the docker client must be run with elevated privileges to connect: Get "http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.24/containers/json?all=1&filters=%7B%22label%22%3A%7B%22com.docker.compose.config-hash%22%3Atrue%2C%22com.docker.compose.project%3Dexercisefiles%22%3Atrue%7D%7D": open //./pipe/docker_engine: The system can.. 더보기
[VirtualBox][Kubernates] LoadBalancer로 애플리케이션 인터넷에 연결하기 1. minikube 시작하기 minikube start --driver=docker --no-vtx-check 2. 인터넷 연결을 위한 Service.yml 파일 만들기 vim service.yml 아래는 service.yml에 들어가는 내용이다. --- apiVersion: v1 kind: Service metadata: name: demo-service namespace: development spec: selector: app: pod-info ports: - port: 80 targetPort: 3000 type: LoadBalancer 파일을 만들었다면 Kubernate에 적용시키자. kubectl apply -f service.yaml 정상적으로 완료된다면 "service/demo-servi.. 더보기
[VirtualBox][Kubernates] BusyBox로 애플리케이션 상태 확인하기 1. BusyBox이란? BusyBox는 Unix/Linux에서 자주 쓰이는 400개 가량의 명령어를 가진 오픈소스이다. BusyBox에서는 자주 쓰이지 않는 명령어 옵션들은 제거됐다. 모든 것이 1MB 아래로 존재하며, 이러한 작은 이미지가 인베디드 시스템과 IOT 도메인, 클라우드 컴퓨팅 세계에서 사랑받는 이유이다. BusyBox는 점점 인기를 얻고 있으며, 작은 크기의 이미지를 제공하기에 Docker 사용자에게 사랑받는다. 2. BusyBox.yml 생성하기 vim 에디터로 busybox.yml 파일을 생성하고, 코딩해 준다. vim busybox.yaml 아래는 busybox.yml에 들어가는 내용이다. --- apiVersion: apps/v1 kind: Deployment metadata: n.. 더보기
[YAML] YAML이란? 기본 특징, 데이터 타입, 문법 1. YAML 정의 YAML은 사람이 쉽게 이해할 수 있는 데이터 직렬화 언어이다. 구성 파일 작성에 자주 사용된다. 예시로 docker로 이루어진 파일에 쓰인다. YAML 파일은 .yml 또는 .yaml 확장자를 사용한다. 2. YAML 기본 특징 2-1 공백만 허용 (Only space allowed) YAML은 공백과 들여쓰기로 구조와 데이터 트리를 정의한다. (이는 마치 Python 프로그래밍과 비슷하다.) 2-2 문서 기본구호 (Document delimeters) --- : 문서의 시작 ... : 문서의 끝 2-3 모든 것은 딕셔너리의 일부이다. 모든 YAML 파일의 데이터는 key-value 쌍의 형식을 따른다. YAML은 대소문자를 구분하며, key는 중복되지 말아야 한다. (unique).. 더보기
[VirtualBox][Kubernate] namespace 생성하기 1. namespace가 필요한 이유 같은 Kubernate cluster에서 개발(Developement), 생산(Production) 환경이 이뤄진다고 해보자. namespace는 한 애플리케이션에서 서로 다른 namespace을 이용하여 따로 분리해서 관리하게 해준다. 2. minikube 실행하기 minikube start --driver=docker --no-vtx-check Window에 있는 코드는 Ctrl + Insert로 복사하고, Linux 터미널에 Ctrl+Shift+V로 붙여넣기 한다. 만약에 복사붙여넣기가 안된다면 게스트 확장 CD를 추가해 주자. 하는 법은 아래 링크를 남긴다. 2023.04.18 - [데이터 사이언스] - [Virtualbox] 우분투 화면 크기에 따라 자동 조.. 더보기
[VirtualBox] Ubuntu에 minikube 터미널로 설치하기 (설치 시 각종 오류 해결 ) 1. minikube 설치 시 발생했던 오류 Ubuntu 22.04에 Minikube를 설치하면서 생겼던 오류들이다. 해결법이 필요하신 분은 minikube 설치 밑에 부분을 참고해 주세요. Exiting due to HOST_VTX_UNAVAILABLE: Failed to start host: creating host: create: creating: Unable to start the VM: /usr/bin/VBoxManage startvm minikube --type headless failed: VBoxManage: error: VT-x is not available (VERR_VMX_NO_VMX) VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80.. 더보기
[VirtualBox] Ubuntu에 Docker 터미널로 설치하기 1. Docker를 설치 전 있으면 좋은 설정 기본적으로 코드를 일일이 옮겨 적기엔 코드가 긴데, 이를 복사 붙여넣기로 대체한다. Window에 있는 코드를 Ctrl + Insert로 복사하고, Linux 터미널에 Ctrl+Shift+V로 붙여넣기 한다. 하지만 우분투를 처음 깔았다면 게스트 확장 이미지 CD를 설정을 안했을텐데 이것을 하지 않으면 복사 붙여넣기가 되지 않는다. 하는 법은 아래 링크를 남긴다. 2023.04.18 - [데이터 사이언스] - [Virtualbox] 우분투 화면 크기에 따라 자동 조절하기 (여러 해결책) 2. apt repository를 이용한 설치 컴퓨터에 처음 도커 엔진을 설치하는 경우 도커 저장소가 필요하다. 설치 후에는 도커 저장소를 통해 설치, 업데이트를 한다. 2-.. 더보기