온프로미스 환경의 쿠버넷에서 서비스를 사용할 때 LoadBalancer(이하 LB)는 사용할 수 없다. 쿠버넷은 서비스의 LB 기능을 외부의 역할로 두었고 퍼블릭 클라우드 환경에서는 각 클라우드 벤더사들이 자체적으로 제공하는 LB가 있지만 온프로미스 설정을 위해 별도로 공개하진 않았다. CNCF Landscape의 Orchestration & Management - Service Proxy 항목을 보면 온프로미스에서 설치가능한 오픈소스 프로젝트 2개가 있는데 MetalLB와 PorterLB 이다. 둘다 쿠버넷의 Service에 필요한 LB 를 제공해주는데 git star를 보면 알겠지만 MetalLB가 사용자가 더 인기가 많아?보인다. MetalLB와 PorterLB의 설정 문서를 대충 훑어봤는데 LB로..
istio는 제공하는 다양한 기능을 시각화하기 위해 여러가지 툴을 제공한다. 대표적으로 네트워크 시각화 - Kiali, 트래픽 트레이싱(추적) - jaeger, 리소스 모니터링 - Prometheus/Grafana 이 있다. Kiali kiali는 service mesh의 전체 네트워크 토폴로지와 서비스 인스턴스 상태, 서비스간의 네트워크 트래픽을 시각화한다. kiali를 사용해서 현재 어떤 서비스에 문제가 발생했고, 어떻게 라우팅 되고있는지 시각화하여 확인할 수 있다. kiali 또한 bookinfo 예제와 동일하게 쉽게 구성할 수 있도록 yaml파일로 배포하고 있다. $ kubectl -f samples/addons/kiali.yaml $ kubectl -n istio-system get all -l..
Istio 설치 패키지는 Bookinfo 예제와 같이 제공된다. Bookinfo는 4개의 서비스로 이루어진 MSA 예제이다. Istio의 여러가지 기능들을 테스트할 수 있도록 폴리글랏 구조로 버저닝되어있는 4가지 서비스를 제공한다. productpage : python project. 제품 설명 페이지를 완성하기 위해 details, reviews 서비스를 호출하는 서비스 details : ruby project. 책 정보 제공 서비스 reviews : java. 책 리뷰 제공 서비스. rating 서비스를 호출한다. ratings : nodejs. 책의 ranking 정보를 제공한다. 버저닝 관련된 테스틑 할 수 있도록 v1, v2, v3가 제공된다. v1 : ratings 서비스를 호출하지 않는 버전..
Service Mesh 기존 모놀리스 시스템을 도메인, 운영등의 여러 기준에 따라 분할해놓은 MSA(MicroService Architecture)는 비즈니스 서비스를 제공하기 위해 수많은 마이크로 서비스들이 내-외부간 네트워크 통신을 하게 된다. 수많은 서비스들간의 네트워크 통신을 관리하기위해 가시화하고 통신에 대한 보안, 추적, 장애방지 등을 관리하기 위해 나온것이 Service Mesh 개념이다. 위 그림에서 볼 수 있는 Amazon, Netflix의 서비스간 네트워크 연결을 보면 알수 있듯이 이러한 수많은 연결이 현재 어떻게 이루어져 있으며 어디서 문제가 발생했는지, 그 문제가 어디까지 전파되고 있는지 또는 서비스 인스턴스가 골고루 사용되고 있는지, 보안연결은 정상적으로 제공되고 있는지에 대한 문..
종종 소켓이라고 하면 tcp, udp 둘 중 하나의 타입을 가지고 0~65535번 중 하나로 열린 소켓을 생각하게 됨. 하지만 Unix Socket(이하 유닉스 소켓)이라고 부르는 소켓이 있음. Network Socket 네트워크 상에서 처리되는 커뮤니케이션. TCP/UDP 프로토콜을 사용해서 통신하게 됨. Unix Domain Socket 유닉스 소켓의 풀네임은 Unix Domain Socket. 머신 내부의 프로세스들끼리 통신만을 위해 사용되는 양방향 통신 소켓. IPC(Inter process communication) Socket 이라고도 부름. 소켓 타입은 3가지가 있음 SOCKET_STREAM : TCP와 비교되는 타입. stream 위주의 소켓. SOCKET_DGRAM : UDP와 비교되는 ..
docker는 호스트에서 server/client 구조로 구동됨. 모든 도커 CLI 명령어의 결과물은 호스트의 도커 서버와 API 통신 결과물을 반환함. 도커 서버와 클라이언트는 소켓으로 통신하는데 별도로 설정해주지 않으면 기본 unix socket을 사용해서 통신하기 때문에 일반적으로 사용하던 netstat, ss 옵션을 사용해서는 리스팅되지 않음. 아래 명령어를 사용해서 리스팅할 수 있음. ss -x | grep containerd network 통신을 위한 network port로 노출시키기 위해서 실행 스크립트를 변경해야 함. vi /lib/systemd/system/docker.service ExecStart=/usr/bin/dockerd -H fd:// -- containerd=/run/con..
Ceph 여러 호스트의 여러 스토리지들을 클러스터링해서 오브젝트 스토리지, 파일 스토리지, 블록 스토리지 등의 형태로 제공할 수 있도록 해주는 클러스터링 도구이다. Whether you want to provide Ceph Object Storage and/or Ceph Block Device services to Cloud Platforms, deploy a Ceph File System or use Ceph for another purpose, all Ceph Storage Cluster deployments begin with setting up each Ceph Node, your network, and the Ceph Storage Cluster. 크게 4개의 요소로 클러스터가 구성된다. Mon..
Install open-iscsi apt-get install open-iscsi -y Edit config vi /etc/iscsi/iscsid.conf #node.startup=manual node.startup=automatic Discovery and Login # discovery iscsiadm -m discovery -t st -p ___STORAGE_IP_ADDRESS___ # set authentication iscsiadm -m node \ --targetname ___IQN___ \ --portal ___STORAGE_IP_ADDRESS___ \ --op=update \ --name node.session.auth.username \ --value="id_password_same" \..
현재 구성되어있는 물리적인 네트워크망 위에 가상의 네트워크 망을 구축하여 기존 네트워크망에서의 제약사항등을 단순화하거나 분리할 수 있도록 구성하는 네트워크 구조 또는 구성 방식. P2P(Peer to Peer), VPN(Virtual Private Network), 인터넷 전화(VoIP)등을 예로 들 수 있다. Reference Wikipedia Overay Network Network Overlay - VXLAN를 말한다. #1 오리뎅이의 LAN 통신 이야기-2 ARP는 이더넷 통신의 꽃이다. NET Study, 네트워크의 모든 것 - VLAN(Virtual LAN)(1)-VLAN 개요
개념 gRPC is a modern open source high performance RPC framework that can run in any environment. 여기서 핵심은 RPC 이다. RPC란 Remote Procedure Control, 원격에 있는 프로시져를 호출한다는 뜻. REST같은 HTTP 프로토콜 기반의 URL 호출방식은 특정 URL String을 엔드포인트로 클라이언트가 서버에게 접근하지만 RPC 같은 경우 클라이언트 코드에서 서버의 메소드를 호출하여 데이터를 교환할 수 있는 방식이다. 예를들어 public User findUserById(Long userId)라는 메소드가 서버의 UserService 클래스에 있다고 했을 때, 클라이언트에서도 마치 UserService 클래..