Skip to content

Install based on source code

Yunkon Kim edited this page Sep 6, 2022 · 4 revisions

설치 가이드

cb-network system의 컴포넌트를 설치 및 구동하기 위한 가이드 입니다. (버전: v0.0.15)

cb-network system은 네트워크 제어 영역(Control plane)과 데이터 영역(Data plane)으로 구성되어 있습니다. 따라서, 이후 내용은 Control plane과 Data plane으로 나누어 설명하겠습니다.

  • Control plane 컴포넌트:
    • cb-network controller,
    • cb-network service,
    • cb-network admin-web
  • Data plane 컴포넌트:
    • cb-network agent

비고 - 각 컴포넌트는 독립된 노드(PC, VM, 등)에서 구동 가능합니다. 본 가이드 에서는 복잡한 설명을 생략하고자 Control plane 컴포넌트를 한 노드에 구성했습니다.

필요조건(Requirements)

cb-network system의 각 컴포넌트를 설치하기 전에, 아래 사항을 참고하십시오.

1. 지원 플랫폼(Supported platforms)

Architecture Operating system Distribution Version Note
AMD64 Linux Ubuntu 18.04
AMD64 Linux CentOS 7.9 Tested only for the agent

2. VM 3대 준비

  • VM 1: Control plane 컴포넌트 설치 및 구동
  • VM 2, 3: Data plane 컴포넌트 설치 및 구동

3. Go 설치 on VM 1

각 컴포넌트를 빌드하기 위해 Go version 1.19를 필요로 합니다.

wget https://raw.githubusercontent.com/cloud-barista/cb-coffeehouse/master/scripts/golang/go-installation.sh
source go-installation.sh '1.19'

참고: Go Setup Script

4. Public IP 조회 및 방화벽 오픈

  • 외부에 있는 cb-network agent가 Control plane에 연결/접속하기 위한 Public IP를 필요로 합니다. VM 1의 Public IP를 확인해 주십시오.
  • 방화벽/Security Group 설정에서 Ports used in CB-Larva의 포트를 오픈해 주십시오.

소스코드에서 Control plane 컴포넌트 빌드

1. 패키지/도구 설치

  • On Ubuntu
sudo apt update -y
sudo apt install git unzip make gcc tree -y

2. 소스코드 가져오기

아래 두 가지 방법 중 선호하는 방식으로 진행 할 수 있습니다.

  • Download the CB-Larva repo as a zip file and unzip it
cd ~
wget -c https://github.com/cloud-barista/cb-larva/archive/refs/tags/v0.0.15.zip -O cb-larva.zip
unzip cb-larva.zip
  • Clone the repo
cd ~
git clone https://github.com/cloud-barista/cb-larva.git
cb cb-larva
git checkout tags/v0.0.15 -b v0.0.15

3. 빌드 스크립트 실행

cb ~/cb-larva
./build.sh

bin 디렉토리에 실행파일 및 설정파일이 복사 됩니다.

비고 - 설정파일 config.yaml의 기본값은 localhost로 설정되어 있습니다. 필요시 수정하시기 바랍니다.

비고 - 설정파일 log_conf.yaml은 그대로 사용해도 무방합니다. 필요시 수정하시기 바랍니다.

Control plane 컴포넌트 구동

각 컴포넌트는 새로운 터미널에서 실행하는 것을 권장합니다. 아래에서 가이드 하겠습니다.

1. Distributed key-value store 배치

cb-network 시스템은 분산 키-값 저장소를 필요로 합니다. 여기서는 etcd를 활용했습니다.

비고 - 테스트를 위해 단일-노드 클러스터를 배치했습니다. 실제 서비스를 위해서는 멀티-노드 클러스터를 배치하십시오.

참고 링크:

새로운 터미널 실행
etcd 다운로드 및 빌드
cd ~
git clone https://github.com/etcd-io/etcd.git
cd etcd
git checkout tags/v3.5.0 -b v3.5.0
./build.sh
etcd 실행

외부 접근은 위해서 --advertise-client-urls and --listen-client-urls 를 설정해야 합니다.

아래 [PUBLIC_IP]를 실행환경의 Public IP로 변경 후 실행 바랍니다.

./bin/etcd --advertise-client-urls http://[PUBLIC_IP]:2379 --listen-client-urls http://0.0.0.0:2379

2. cb-network controller 구동

새로운 터미널 실행
cb-network controller 실행
cd ~/cb-larva/bin
sudo ./controller

3. cb-network service 구동

새로운 터미널 실행
cb-network service 실행
cd ~/cb-larva/bin
sudo ./service

4. cb-network admin-web 구동

새로운 터미널 실행
cb-network admin-web 실행
cd ~/cb-larva/bin
sudo ./admin-web

Data plane 컴포넌트 구동

Data plane 컴포넌트는 pre-built binary 구동을 권장합니다. 소스코드 기반 구동 / 컨테이너 기반 구동시 필요한 툴/패키지 등을 사용자 환경에 설치하지 않기 위함 입니다.

1. 준비사항

  • 사전에 준비된 VM 2와 3을 활용하겠습니다.
  • cb-network admin-web에 접속하여 cladnet을 생성하고, ID를 준비해 주십시오. (1개만 준비하면 됩니다.)
    • 생성시 Network (IPv4 CIDR block) 예: 192.168.0.0/27, 172.16.10.0/26

2. cb-network agent 구동

VM 2와 3에서 아래 과정을 반복 수행하십시오.

새로운 터미널 실행
VM 접속
cb-network agent 실행
  • 아래 PUBLIC_IP를 Control plane의 Public IP로 치환 하십시오.
  • 아래 CLADNET_ID를 cb-network admin-web에서 발급 받은 ID로 치환 하십시오.
wget https://raw.githubusercontent.com/cloud-barista/cb-larva/v0.0.15/poc-cb-net/scripts/deploy-the-released-cb-network-agent.sh -O ~/deploy-the-released-cb-network-agent.sh
chmod +x ~/deploy-the-released-cb-network-agent.sh
source ~/deploy-the-released-cb-network-agent.sh '["PUBLIC_IP:2379"]' CLADNET_ID