Skip to content

Install based on container

Yunkon (Alvin) Kim edited this page Jul 6, 2022 · 3 revisions

컨테이너 기반 설치 가이드

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

cb-network system의 네트워크 제어 영역(Control plane)을 컨테이너 기반으로 구동하는 방법에 대하여 설명 합니다. 데이터 영역(Data plane)은 pre-built binary를 통해 구동 됩니다.

  • 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. VM 3대 준비

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

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

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

3. Docker 설치 on VM 1

wget -qO- get.docker.com | sh
sudo docker -version

4. Docker-compose 설치 on VM 1

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
sudo docker-compose --version

Control plane 컴포넌트 구동

1. 패키지/도구 설치

  • On Ubuntu
sudo apt update -y
sudo apt install git unzip vim -y

2. 소스코드 가져오기

비고 - Public container registry에 v0.0.15에 해당하는 컨테이너 이미지가 없습니다. 소스코드를 기반으로 컨테이너 이미지를 빌드합니다.

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

  • 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. Volume 및 설정파일 준비

cb ~/cb-larva
mkdir -p container-volume/cb-network/config
mkdir -p container-volume/cb-network/etcd
sudo cp ~/cb-larva/poc-cb-net/config/template-config.yaml ~/cb-larva/container-volume/cb-network/config/config.yaml
sudo cp ~/cb-larva/poc-cb-net/config/template-log_conf.yaml ~/cb-larva/container-volume/cb-network/config/log_conf.yaml
config.yaml 수정

container간 통신을 위해 localhost를 각 서비스 이름으로 변경 바랍니다. (참고: docker-compose.yaml)

cd ~/cb-larva/container-volume/cb-network/config
vim config.yaml

참고:

# A config for an etcd cluster (required for all cb-netwwork components):
etcd_cluster:
  endpoints: [ "cb-network-etcd:2379" ]

# A config for the cb-network service and cb-network admin-web as follows:
service:
  endpoint: "cb-network-service:8053"
  port: "8053"

# A config for the cb-network admin-web as follows:
admin_web:
  host: "cb-network-admin-web"
  port: "8054"

(생략)

4. 컨테이너 이미지 빌드

sudo docker-compose build --parallel

5. Control plane 컴포넌트 실행

sudo docker-compose up

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