Joonas' Note

Joonas' Note

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

개발/Docker

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

2018. 10. 30. 14:41 joonas

    원문: 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}


    Comments