本指南提供了如何在虚拟机上按步骤部署Kolla

主机需求

推荐的部署目标要求:

  1. 2个或更多的网络接口。
  2. 至少8G内存
  3. 至少40G的磁盘空间。

注:下面的一些指令可能需要root权限

推荐环境

如果开发和评估Kolla,社区强烈建议使用裸机或虚拟机。按照下面说明开始使用Kolla在虚拟机部署OpenStack。

安装依赖关系

注:版本的组件的安装是非常敏感的,请仔细审查。

组件

最低版本

最高版本

评论

Ansible

2.0.0

none

在部署主机上

Docker

1.10.0

none

在目标节点上

Docker Python

1.6.0

none

在目标节点上

Python Jinja2

2.8.0

none

在部署主机上

(1)在开始之前确保pip包管理器安装和升级到最新版本。

# CentOS 7
    yum -y install epel-release
    yum -y install python-pip

(2)安装Docker
因为Docker要求构建镜像,也要求出现在所有的部署目标上,为了获取最大的稳定性和兼容性,Kolla社区推荐使用以下指令安装公司打包的官方Docker版本:

curl -sSL https://get.docker.io | bash

此条指令将会安装最新版本的稳定版Docker,运行以下指令查询Docker是否正确安装

docker --version

配置Docker参数

mkdir -p /etc/systemd/system/docker.service.d
    tee /etc/systemd/system/docker.service.d/kolla.conf <<-'EOF'
    [Service]
    MountFlags=shared
    EnvironmentFile=/etc/sysconfig/docker
    ExecStart=
    ExecStart=/usr/bin/docker daemon $other_args
    EOF

修改/etc/sysconfig/docker参数并添加下面一行,目的为了配置本地仓库镜像,本部署使用的是build好的OpenStack本地镜像,直接从官网获取镜像耗时太长,目前Kolla社区有自己的制品库,库中有构建好的master和ocata分支的OpenStack镜像,用户无需自己再build镜像,直接下载即可使用
http://tarballs.openstack.org/kolla/images/

other_args="--insecure-registry 192.168.1.11:4000"

启动Docker

systemctl daemon-reload
    systemctl restart docker

(4) 制作Docker本地仓库

#build好的OpenStack镜像解压到本地
    tar mxvf registry-3.0.0.tgz 

    #导入下载好的仓库容器文件
    docker load < ./registry-server.tar

    #启动仓库容器,将镜像解压位置作为数据卷
    docker run -d -p 4000:5000 --restart=always -e REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY=/tmp/registry -v /home/docker/registry:/tmp/registry  --name registry registry:2

    #启动成功后,访问以下地址可查看仓库数据
    http://127.0.0.1:4000/v2/_catalog

(5)安装Ansible

yum -y install ansible

(6) 获取Kolla源码,并使用源码部署

git clone https://git.openstack.org/openstack/kolla
    git checkout stable/newton  #使用newton版本部署
    cd kolla
    cp -r etc/kolla /etc/

    #配置 /etc/kolla/globals.yml
    openstack_release: "3.0.0"#Newton版本对应3.0.0
    network_interface: "eth0" #根据自己虚机选择
    kolla_internal_vip_address: "10.10.10.111" # belongs to eth0,改成eth0一个网段的ping不通的ip
    neutron_external_interface: "eth1"

    docker_registry: "192.168.1.11:4000"#改成本地仓库地址
    docker_namespace: "kolla"

    #生成 /etc/kolla/password.yml
    kolla-genpwd

    #配置/kolla/ansible/inventory/multinode文件

    #检测和部署
    cd kolla/tools
    ./kolla-ansible prechecks -i /home/kolla/ansible/inventory/multinode
    ./kolla-ansible deploy -i /home/kolla/ansible/inventory/multinode

注: 社区从ocata版本开始将kolla代码拆分成kolla和kolla-ansibe两个仓库以明细分工
kolla用来build OpenStack镜像
kolla-ansibe用来部署

详情可参考Kolla官方文档:
https://docs.openstack.org/developer/kolla-ansible/quickstart.html
http://docs.openstack.org/developer/kolla-ansible/multinode.html