Joonas' Note

[번역] Docker - OpenStack (3/4) 본문

개발/Docker

[번역] Docker - OpenStack (3/4)

joonas 2018.10.30 14:41

원문: https://wiki.openstack.org/wiki/Docker

[번역] Docker - OpenStack (1/4)

[번역] Docker - OpenStack (2/4)

[번역] Docker - OpenStack (3/4)

[번역] Docker - OpenStack (4/4)

3. Nova-Docker를 사용하기 위한 DevStack 설정

데브스택(DevStack)의 도커 하이퍼바이저를 사용하면 이전 단계들에서 작성한 모든 설정이 바뀝니다.

NOTE: 아래 코드에서, localadmin은 관리자 계정을 의미하는 것이니, 자신의 설정에 맞게 바꾸시면 됩니다.

3.1. 최신 버전의 도커 설치

Ubuntu:

[ -e /usr/lib/apt/methods/https ] || {
  sudo apt-get update
  sudo apt-get install apt-transport-https
}
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 \
    --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
sudo sh -c "echo deb https://get.docker.com/ubuntu docker main \
    > /etc/apt/sources.list.d/docker.list"
sudo apt-get update
sudo apt-get install -y lxc-docker

source /etc/bash_completion.d/docker  # Docker file completion for bash
sudo bash -c "echo DOCKER_OPTS=\'-G localadmin\' >> /etc/default/docker"
sudo restart docker
docker version  # Should work!
docker run -i -t ubuntu /bin/bash  # Optional test step

Fedora:

sudo yum -y install docker
sudo yum -y update docker
sudo systemctl start docker
sudo systemctl enable docker
sudo docker run -i -t ubuntu /bin/bash

3.2. Nova-Docker 준비

sudo apt-get update
sudo apt-get install -y python-pip python-dev

rm -rf /opt/stack/nova-docker
sudo mkdir -p /opt/stack
sudo git clone https://git.openstack.org/openstack/nova-docker /opt/stack/nova-docker
cd /opt/stack/nova-docker
# Check out a different version if not using master, i.e:
# sudo git checkout stable/kilo && sudo git pull --ff-only origin stable/kilo
sudo pip install .  # The linecache2 error appears to be benign

3.3. DevStack 설치

devstack을 복제하세요. (stable/kilo, master처럼 서로 같은 버전의 devstack과 nova-docker를 사용하기를 권장합니다.)
(역: 2018년 10월 30일 기준으로, 저장소는 여기입니다. https://git.openstack.org/cgit/openstack-dev/devstack)

DevStack의 stack.sh 스크립트를 실행하기 전에, 아래와 같이 local.conf 또는 localrc 파일을 설정합니다.

localrc
VIRT_DRIVER=novadocker.virt.docker.DockerDriver

# Introduce glance to docker images
$GLANCE_API_CONF
[DEFAULT]
container_formats=ami,ari,aki,bare,ovf,ova,docker

nova-docker 드라이버를 사용하기 위한 nova를 설정합니다. 킬로(Kilo) 버전 릴리즈에서는 뉴트론(neutron)이 기본값임을 알아두세요.

$NOVA_CONF
[DEFAULT]
compute_driver=novadocker.virt.docker.DockerDriver

echo "##### Introduce glance to docker images" >> local.conf
echo "\$GLANCE_API_CONF" >> local.conf
echo "[DEFAULT]" >> local.conf
echo container_formats=ami,ari,aki,bare,ovf,ova,docker >> local.conf
echo >> local.conf
echo "##### Configure nova to use the nova-docker driver" >> local.conf
echo "\$NOVA_CONF" >> local.conf
echo "[DEFAULT]" >> local.conf
echo compute_driver=novadocker.virt.docker.DockerDriver >> local.conf
echo >> local.conf

3.4. DevStack 시작

./stack.sh

3.5. Nova-Docker 테스트

필터를 복사합니다.

sudo cp /opt/stack/nova-docker/etc/nova/rootwrap.d/docker.filters /etc/nova/rootwrap.d/

컨테이너를 시작합니다.

. openrc admin

INSTANCE=d1
IMAGE=cirros

docker pull ${IMAGE}
docker save ${IMAGE} |
    glance image-create --name ${IMAGE} --visibility public --container-format docker --disk-format raw

nova boot --image ${IMAGE} --flavor m1.tiny ${INSTANCE}
sleep 10
nova list
nova show ${INSTANCE}

플로팅 IP(floating IP)를 할당한 후, 컨테이너와 연결합니다.

ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no cirros@${floatingip_ip}


0 Comments
댓글쓰기 폼