起底Kolla:OpenStack容器化项目的实践

摘要

本次分享主要是讲解OpenStack在Docker化项目上的一些实践、遇到的问题,还有后续会做的事以及遇到的挑战。

视频内容

OpenStack交付工具

在OpenStack交付工具中,主要有以下一些工具:

红帽RDO和TripleO (puppet);

UbuntuMaas和juju(juju);

SuseCrowbar (Chef);

MirantisFuel(puppet);

HPHellion (ansible);

Rackspace(chef,salt,ansible);

IBMPowerVC (shell);

Devstack(shell)。

配置管理工具

在配置管理交付工具中,Puppet市场占有率很高。Chef最早支持OpenStack的工具,但是现在已经很少看到它的身影了。Ansible发展速度最快,在每个OpenStack项目里都包含Ansible部署的脚本。Salt 可能会东山再起。

企业需求

OpenStack主要是面向企业,所以我们也很清楚它的企业需求。主要需求就是成本、安全、可靠、扩展、灵活。

从2010年OpenStack设立之初,至今已有七年了。2012年到2013年,OpenStack发布了它的Folsom & Grizzly版本。2013年3月份,Docker发布了第一个版本。2014年6月,Kubeneters项目开始启动。2014年9月,Kolla开始成立,成立Kolla项目的初衷就是想让OpenStack跑在容器里,提供生产环境部署的项目,做到100个节点。2015年,Kolla项目进入Big Tent,同年11月,Docker1.9支持kolla-mesos。2016年,Docker 1.10发布。2016年9月,进行了Kolla的M版本发布,2017年3月发布O版本。

Kolla的目标

简化部署和运维。提供生产级别的Docker镜像,提供用于镜像部署的运维工具。在100台物理节点的规模下做到开箱即用。

特性

支持所有服务的高可用;

支持 ceph 做后端存储,glance/nova/cinder/gnocchi;

支持多个 Linux 发行版;

CentOS/ OracleLinux / Ubuntu / RHEL;

同时支持源码安装和二进制包安装;

物理机上只依赖 Docker Engine 和 docker-py;

支持原子升级。

实现

使用 Dockerfile + jinja2 构建镜像。

使用镜像依赖,构建速度更快,镜像更小。

使用 Ansible 进行部署。

使用 Ansible 做服务编排,提供 kolla-ansible 脚本,使用 Ansible Inventory 控制服务在哪些机器上启动。同时支持单机部署和多机部署,支持所有组件的高可用,包括 rabbitmq 和 mariadb。容器内非 root 用户运行,保证安全。部分容器需要使用 --privileged 权限,支持 kubernetes。

Commands:

prechecks Do pre-deployment checks for hosts

mariadb_recovery Recover a completely stopped mariadb cluster

bootstrap-servers bootstrap servers with kolla deploy dependencies

destroy DestroyKolla containers, volumes and host configuration

deploy Deployand start all kolla containers

deploy-bifrost Deploy and start bifrost container

deploy-servers Enroll and deploy servers with bifrost

post-deploy Do post deploy on deploy node

pull Pullall images for containers

reconfigure Reconfigure OpenStack service

certificates Generate self-signed certificate for TLS *ForDevelopment Only*

upgrade Upgradesexisting OpenStack Environment

genconfig Generate configuration files for enabledOpenStack services

容器化一切服务,libvirt / openvswitch /neutron,保证一个容器只有一个进程。

模型是使用net host网络模型。

优点

资源隔离,快速部署,容器毫秒级启动,单机部署在5分钟内。运行环境具有不变性。便携性,镜像总大小小于3GB。升级支持原子升级、单服务升级,还支持失败回滚。

缺点

OpenStack本身就是一个平台,依赖于Docker。所以是否好用还是依赖于Docker的成熟度。增加了额外的复杂度。

挑战

日志的收集;配置文件管理;container 编排;集成测试;镜像的灵活性;容器化后 docker 本身的问题;数据持久化。

我今天的分享就到这里,谢谢大家!

原文发布于微信公众号 - IT大咖说(itdakashuo)

原文发表时间:2017-12-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术翻译

Kubernetes扩展容器架构的7 个工具

Kubernetes是最初由Google开发的容器编排工具,已成为敏捷和DevOps团队的重要资源。作为一个开源工具,Kubernetes本身正在成为一个生态系...

1134
来自专栏deed博客

预装Windows8的品牌电脑重装系统以及装双系统的那点事儿

1593
来自专栏云计算

Docker带来的五大益处:CI,版本控制,可移植性,隔离性和安全性

Docker的跨环境一致性在开发界已经获得了广泛认可。通常情况下,开发阶段和正式发布的环境之间总会有细微的差异。除非你拥有自己的私有仓库,并严格检查。这些差异可...

3159
来自专栏CSDN技术头条

如何构建企业级Docker Registry Server

很多人问我,虚拟机镜像和docker镜像的区别是什么?其实区别非常明显,我们可以通过阅读Dockerfile文件就可以知道这个镜像都做了哪些操作,能提供什么服务...

22410
来自专栏大魏分享(微信公众号:david-share)

世上最强版本Openshift之初体验

横向比较,Openshift在全球IT圈内,Forrester最新的报告认为从技术表现和市场表现看,Openshift 3.10是业内最好的容器云平台。

5592
来自专栏云计算D1net

8个你可能不知道的Docker知识

自从上世纪 90 年代硬件虚拟化被主流的技术广泛普及之后,对数据中心而言,发生的最大的变革莫过于容器和容器管理工具,例如:Docker。在过去的一年内,Dock...

3665
来自专栏互联网杂技

Docker,改变程序世界的箱子

Docker容器是什么鬼? 简言之, Docker容器就是一个软件集装箱。 装什么? 特定版本的操作系统、数据库、服务器程序和 web 应用等…… ? ? ? ...

3445
来自专栏Rainbond开源「容器云平台」

如何正确理解Docker生态

1363
来自专栏磨磨谈

基于发行版本内核打造自己的内核

Linux当中最核心的部分就是内核,这个也是最基础,最可能被忽视的一部分,随便找一个刚入职的运维,学习个两三天,网上找些资料也能能自己安装编译内核了,很多运维的...

962
来自专栏我是攻城师

8 个你可能不知道的 Docker 知识

2793

扫码关注云+社区