Ingress란? 일반적으로 Ingress는 네트워크 트레픽을 구분하는 말로써 요즘은 GCP와 같은 클라우드에서 VM의 방화벽 규칙을 만들 때 쉽게 접할 수 있습니다. 구체적으로 Ingress는 외부에서 들어오는 트래픽이며 반대로 밖으로 나가는 트래픽은 Egress라고 합니다. 이는 전통적인 데이터센터를 기준으로는 Inbound와 Outbound...
Kubernetes - Service
Service 란? Pod을 생성하게 되면 자체 IP가 Pod에 할당됩니다. 그러나 이렇게 할당받은 IP는 랜덤하게 지정이되고 리스타트 될 때마다 변하기 때문에 고정된 엔드포인트로 호출이 어렵습니다. 이때문에 Pod의 자체 IP를 통해 다른 Pod와 직접 통신하는 것은 권장되지 않고 대신 별도의 고정된 IP를 가진 Service를 만들고 이를 통...
Trouble Shooting - python 기반의 docker 이미지 build 과정에서 발생한 Warning message
개요 python 이미지 기반으로 dockerfile을 작성하여 이미지로 bulid하는 과정에서 두개의 Warning Message를 직면했다. 해당 warning message가 결과적으로는 이미지를 생성하는데 영향을 미치진 않았지만, warning message를 보고도 넘길만한 쿨함이 없기 때문에 이에 관한 trouble shooting을 ...
GCP - GCP 기반 실시간 데이터 파이프라인 (3)
GCP 기반 데이터 엔지니어링을 위한 마지막 단계인 GKE의 사용이 남았습니다. 지난 포스팅에서도 언급했지만 GKE는 쿠버네티스 기반의 구글 클라우드 서비스이며 어플리케이션을 배포하기 위한 용도로 사용됩니다. 도커 이미지 만들기 쿠버네티스 pod을 생성하기 위해선 컨테이너 이미지가 필요합니다. 이를 위해서 dockerfile을 만들어서 컨테이너 이...
GCP - GCP 기반 실시간 데이터 파이프라인 (2)
지난 포스팅에서는 트위터 실시간 API를 통해 수집되는 데이터를 Pub/Sub으로 보내는 작업을 수행했습니다. 이젠 Cloud funtions를 사용하여 pub/sub으로 데이터가 들어올 때, Data Warehouse인 BigQuery로 전송하는 작업을 진행합니다. BigQuery 설정 빅쿼리는 GCP의 완전 관리형 SQL 데이터 웨어하우스로 솔...
GCP - GCP 기반 실시간 데이터 파이프라인 (1)
개요 최근 데이터 엔지니어링은 무엇인가라는 고민들을 해봤습니다. 취업준비를 하다보니 단순 빅데이터 오픈소스들을 활용하는 것만큼이나 클라우드의 여러 fully managed service들을 통한 파이프라인들을 만드는 경험 또한 필요하다는 생각이 들었기 때문입니다. 물론 현재의 데이터 엔지니어는 데이터 파이프라인을 만드는 사람입니다. 그런데 업계 사...
Kubernetes - Deployment
Deployment란? 쿠버네티스 클러스터를 운영할 때 replicaset이나 pod을 단독으로 사용하는 경우는 거의 없고, 대부분의 경우 replicaset과 pod을 deployment라는 오브젝트를 yaml파일로 정의하는 방식으로 사용합니다. 실제로 Deployment는 쿠버네티스에서 가장 널리 사용되는 오브젝트 중 하나이며, 쿠버네티스의 ...
Kubernetes - Replicaset
Replicaset이란? Pod는 쿠버네티스의 기본 단위로써 여러개의 컨테이너를 추상화하여 하나의 어플리케이션으로 동작하게 만드는 컨테이너의 묶음입니다. 만약 yaml파일에 pod만 정의해서 생성할 경우, 이 pod의 Lifecycle은 컨테이너 삭제시 영원히 사라지게 됩니다. 그래서 yaml파일에 pod만 정의해서 생성하면 해당 pod는 오직 ...
Kubernetes - Pod
Pod 이란? Pod(파드)는 쿠버네티스에서 만들고 관리할 수 있는 가장작은 배포 단위입니다. 쿠버네티스 클러스터에서 마스터 노드는 워커노드로 pod을 할당하고 워커노드에서 pod을 띄우는 구조로 작동합니다. 워커노드에는 여러개의 pod이 있을 수 있고 pod은 한개 이상의 컨테이너로 구성됩니다. 쿠버네티스 클러스터에서 pod가 사용되는 방식은...
Kubernetes Practice - minikube 설치 및 테스트
쿠버네티스를 운영환경에 설치하려면 최소 3대의 마스터 서버와 컨테이너 배포를 위한 n개의 워커서버가 필요하다. 이러한 구성 작업을 직접 하는 것은 꽤나 복잡하고 만약 퍼블릭 클라우드 서비스를 이용한다고 해도 각 서비스마다 사용법이 다 다르기 때문에 첫 학습을 시작하는 시점에서 이를 해내기는 어렵다. 따라서 간단하게 단일노드에 마스터와 워커를 띄워서 실...