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

Clone this wiki locally