kolla
kolla项目是为了容器化openstack,目标是做到100个节点的开箱即用,所有的组件的HA都具备。kolla是一个革命性的项目,我们以前积累的安装部署经验,全部都报废。使用kolla可以快速部署可扩展,可靠的生产就绪的openstack环境。
基本环境
操作系统:CentOS Linux release 7.2.1511 (Core)
内核版本:3.10.0-327.28.3.el7.x86_64
docker版本:Docker version 1.12.1, build 23cf638
部署kolla
1. 安装依赖
yum install epel-release python-pip |
2. 修改docker启动文件
# Create the drop-in unit directory for docker.service |
3. 重启docker
systemctl daemon-reload |
4. 安装docker的python库
yum install python-docker-py |
5. 配置时间同步(此处略)
6. 禁用libvirt
systemctl stop libvirtd.service |
7. 安装ansible
这里需要注意的是如果安装stable版的kolla需要Ansible < 2.0,master版需要Ansible > 2.0。默认yum安装ansible版本>2.0,因为我要安装stable/mitaka版,所有指定安装版本。
pip install -U ansible==1.9.4 |
8. 安装stable版kolla
下载源码
git clone https://git.openstack.org/openstack/kolla -b stable/mitaka
安装依赖
pip install -r kolla/requirements.txt -r kolla/test-requirements.txt
源码安装
pip install kolla/
9. 安装tox,生成配置文件
pip install -U tox |
10. 安装python client
yum install python-openstackclient python-neutronclient |
11. 本地docker仓库
all-in-one环境中本地仓库不是必须的这里没有配置
编译镜像
kolla-build |
更多的编译选项可以参看:Building Container Images
如果个别镜像编译失败可以重新执行以上操作,因为docker的容器缓存,重新编译会很快
编译成功后生成的镜像如下所示:
# docker images |
部署容器
1. 生成密码
openstack环境的密码等变量可以在 /etc/kolla/passwords.yml 中指定,为了方便可以使用kolla-genpwd工具自动生成复杂密码。
kolla-genpwd |
为了方便,我们修改其中的管理员登陆密码
vim /etc/kolla/passwords.yml |
2. 修改部署配置文件
修改/etc/kolla/globals.yml 文件,指定部署的一些信息
vim /etc/kolla/globals.yml |
3. 检查配置
kolla-ansible prechecks |
4. 开始部署
kolla-ansible deploy |
5. 部署成功后查看容器
# docker ps |
6. 修改虚拟化类型
因为是在虚拟机中安装,不支持kvm,需要修改虚拟类型为qemu
vim /etc/kolla/nova-compute/nova.conf |
然后就可以通过 kolla_internal_address 访问openstack环境
一些有用的工具
部署完成后,运行以下命令可以生成一个openrc文件(运行openstack CLI所需的环境变量):
kolla-ansible post-deploy
openrc文件生成之后,使用以下命令可以帮你做一下openstack的初始化工作,包括上传一个glance镜像以及创建几个虚拟网络:
source /etc/kolla/admin-openrc.sh
kolla/tools/init-runonce由于错误的出现,可能需要多次的部署,而有些错误重新部署是不会进行修正的,所以需要将整个环境进行清理:
tools/cleanup-containers #可用于从系统中移除部署的容器
tools/cleanup-host #可用于移除由于残余网络变化引发的docker启动的neutron-agents主机
tools/cleanup-images #可用于从本地缓存中移除所有的docker image
日志查看
kolla通过heka容器来收集所有容器的日志
docker exec -it heka bash |
所有的容器都可以从这个目录中获取服务日志:/var/log/kolla/SERVICE_NAME。
如果需要输出日志,请运行:
docker logs |
大多数容器不会stdout,上面的命令将不会提供信息。
出错处理
deploy时遇到以下错误:
TASK: [rabbitmq | fail msg="Hostname has to resolve to IP address of api_interface"] *** |
解决办法:
vim /etc/hosts |
kolla的更多相关文章
- Inside Kolla - 05 从 tools 目录开始
从 tools 目录开始 在上一篇中已介绍了 Kolla 的源代码目录结构和各个目录中源代码的基本作用,现在开始深入到各个目录,介绍目录中的具体内容.每个人分析代码的思路和方法不同,会选择从不同的目录 ...
- Inside Kolla - 04 Kolla 目录结构
Kolla 目录结构 把 Kolla 的源代码下载下来后,先从总体上分析 Kolla 的目录结构,查看顶层目录结构,使用 tree -L 1 输出 . ├── ansible ├── compose ...
- Inside Kolla - 03 下载Kolla
下载 Kolla Kolla 目前托管在 github.com 上,项目仓库的 URL 是 https://github.com/stackforge/kolla. 下载 Kolla 时,可下载 gi ...
- Inside Kolla - 02 Kolla 是什么
Kolla 是什么? Kolla 项目 Kolla 是 OpenStack 里面的一个项目,在源代码的 README.md 里面的解析是: The Kolla project is part of t ...
- Inside Kolla - 01 简介
简介 在 opencloud 2015 的会议上初次了解到 kolla 项目后,开始去了解和学习 kolla 的源代码和相关的知识.经过一段时间的了解,觉得 kolla 确实是一个很好的项目,它使用预 ...
- kolla管理openstack容器
本文以nova-api容器为例,说明kolla如何将nova-api配置文件传入容器,容器如何启动nova-api服务并读取配置文件 注:第一部分比较无趣,二三部分 会有意思一些 1. nova-ap ...
- kolla 多节点部署 openstack
kolla 介绍 简介 kolla 的使命是为 openstack 云平台提供生产级别的.开箱即用的交付能力.kolla 的基本思想是一切皆容器,将所有服务基于 Docker 运行,并且保证一个容器只 ...
- kolla queens on centos7.5 -all in one
目录 环境准备 开始配置 快照,快照,快照 pull镜像并部署 登录配置OpenStack 环境准备 我这里用workstation创建了一个虚拟机,安装centos7.5 mini系统,这台虚拟机上 ...
- kolla单节点部署openstack
virtualbox环境: 双网卡:enp0s3(桥接) 192.168.102.194 enp0s8(桥接) 无ip 块存储 50G 关闭防火墙,selinux. 配置yum源:wget ...
- kolla之docker私有仓库创建
kolla镜像自从P版以后就没有向之前版本直接下载一个tar然后放入仓库那么简单了. 正式开始搭建仓库: 1.启动仓库容器 docker run -d -v /opt/registry:/var/l ...
随机推荐
- 一文搞定Spring Task
今天和大家分享下Spring Task这个知识点,主要通过下面6个点来展开描述,希望能够帮助到大家. 1.什么是定时任务 2.入门案例 3.Corn表达式 4.Corn实战案例 5.@Schedule ...
- win10 WSL2问题解决“WslRegisterDistribution failed with error: 0x800701bc”
win10安装wsl过程报错信息如下: 造成该问题的原因是WSL版本由原来的WSL1升级到WSL2后,内核没有升级,前往微软WSL官网下载安装适用于 x64 计算机的最新 WSL2 Linux 内核更 ...
- Redis缓存何以一枝独秀?(2) —— 聊聊Redis的数据过期、数据淘汰以及数据持久化的实现机制
大家好,又见面了. 本文是笔者作为掘金技术社区签约作者的身份输出的缓存专栏系列内容,将会通过系列专题,讲清楚缓存的方方面面.如果感兴趣,欢迎关注以获取后续更新. 上一篇文章中呢,我们简单的介绍了下Re ...
- 面试官:JVM是如何判定对象已死的?
本文已收录至Github,推荐阅读 Java随想录 微信公众号:Java随想录 CSDN: 码农BookSea 知道的越多,才知知道的越少.--苏格拉底 目录 引用计数算法 可达性分析算法 引用类型 ...
- drf基础:1、web应用模式、API接口、接口测试工具
drf入门 一.web应用模式 web的应用模式共分为两种,前后端不分离.前后端分离 1.前后端混合 之前所写的bbs项目就是前后端不分离,后端人员在开发过程中使用模板语法,前后端都由一个人员 ...
- MySQL 合并查询join 查询出的不同列合并到一个表中
为了求解问题时思路清晰,建议先分列查询,再将列合并到一个表中,这样相当于将复杂问题拆解为简单问题,一一解决.优点是避免所有问题混在一起,代码逻辑清晰,可迁移性强,下次遇到类似的查询问题能快速求解,缺点 ...
- 神经网络基础部件-BN层详解
一,数学基础 1.1,概率密度函数 1.2,正态分布 二,背景 2.1,如何理解 Internal Covariate Shift 2.2,Internal Covariate Shift 带来的问题 ...
- Emacs单文件配置
编辑 ~/.emacs 输入以下内容 ;; 编码 (set-language-info "UTF-8" 'coding-priority '(utf-8 gb18030 gbk g ...
- VUE10 计算属性
1 Vue计算属性简介 1)定义:我们需要一个属性,但是这个属性不存在,但是可以通过已有的属性计算得来,那么就可以定义一个计算属性. 2)原理:底层借助了Object.defineproperty方法 ...
- STL中的智能指针(Smart Pointer)及其源码剖析: std::auto_ptr
STL中的智能指针(Smart Pointer)及其源码剖析: std::auto_ptr auto_ptr 是STL中的智能指针家族的成员之一, 它管理由 new expression 获得的对象, ...