本指南提供了如何在虚拟机上按步骤部署Kolla
主机需求
推荐的部署目标要求:
- 2个或更多的网络接口。
- 至少8G内存
- 至少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