陈沙克

Feb 242017
 

目前Kolla的Ocata版本的正式发布,其实还需要大概2周时间,不过基础的功能,其实早就完成。现在OpenStack版本发布,已经不再搞Release note,大家了解项目的新功能,其实不是太方便。

我是跟踪的Kolla的Ocata版本的全程开发,所以根据我的理解,给大家写一个Ocata版本的Kolla新功能介绍。

如果让我比较Kolla的Ocata版本和Newton版本,那么我只能说是脱胎换骨,已经接近很完善的地步。

Reconfigure

在Newton的时候,kolla做过一个100个节点的测试,当时发现部署和安装,都是很顺利,不过部署完毕后,修改配置非常缓慢,部署安装需要30分钟,修改一个配置生效也是需要30分钟,在一个大规模的环境下,是不可容忍的。

这次对reconfigure,进行全部的代码重构。修改配置,就是一分钟内的事情就搞定。在技术上,这算是kolla在Ocata版本做的最大的动作。

Repo拆分

为了日后的发展,对kolla的代码进行拆分

kolla:专门做镜像的制作

  • kolla-ansible,使用ansible来部署build好的OpenStack镜像
  • kolla-k8s,使用k8s来部署build的OpenStack镜像

这个Repo的拆分,对Kolla的日后发展,其实有深刻的意义。目前已经有人提出要搞kolla-salt。

对于用户来说,可以直接使用OpenStack官方提供的镜像,通过kolla-ansible来部署就可以。

Kolla-K8s

Ocata版本,kolla-k8s,目前发布了0.5的版本,可以进行Demo,取得很大的进步,目前主要是Steven Dake在负责,未来和Mirantis的Fuel-ccp进行全面竞争。

kolla项目是由Steven Dake创建,把kolla的PTL职位交出以后,全力搞Kolla-k8s,希望可以在Pike版本里,交付一个1.0版本。

Fluentd替换Heka

其实对于开源项目来说,上游的情况是必须密切关注,Heka社区宣布停止维护,也就导致Kolla项目的日志收集组件需要替换。

由于K8s是采用Fluentd来收集日志,所以最终社区经过讨论,决定使用Fluentd来替换Heka。定下目标就是做到无缝的切换。

也利用这个机会,把Kolla的所有的项目日志,都重新整理了一遍。大家如果是从Newton版本升级到Ocata版本,并且已经启用的日志服务,那么就需要把Heka替换,无缝迁移。

Horizon插件

kolla在Newton版本设想是利用插件机制,让用户在build镜像的时候,把自己需要的项目的UI,放到Horizon里。技术上是没问题。这样其实导致一个问题,用户必须自己build镜像。

经过讨论,决定默认就把OpenStack带UI的项目,默认都放到Horizon镜像里,如果启用该项目,默认就能看到UI,这样就方便很多。用户除非有特别的需求,根本就不需要自己build镜像。

这样其实也带来一个好处,更加容易发现存在的bug。通过这次UI的集成,其实发现很多项目的问题,都已经进行修复,目前基本全部项目的Horizon的插件UI,工作正常。

增强CI

简单点说,就是加强自动化测试,提高自动化测试的效率。对于部署工具来说,这点就显得更加重要。对于Kolla来说,每个commit,都是要跑一遍测试,并且要支持多个操作系统。如果提高测试的速度,成为的一个很关键的因素。

Kolla的测试最耗费时间的是build 镜像,以前是每次测试都是需要build镜像,就算提交的内容和docker 镜像无关。那么随着Kolla-ansible的拆分,kolla-ansible其实就只需要使用已有的镜像就可以,没必要再build一次镜像来测试。

经过大家奇思妙想,重要想到了一个解决方案,把kolla对镜像的每个修改,都会把镜像打包放到一个公共的目录下,只保留最新的版本,kolla-ansible只需要下载回来进行测试就可以。

其实也间接解决了一个大问题,用户如何下载已经build好的Docker file。如果依赖kolla社区推到docker hub上的,版本都是正式版本,也很难保持持续更新。

对于用户来说,尤其是国内用户,可以直接通过 http://tarballs.openstack.org/kolla/images/ 下载build好的kolla 的docker file,下载回来解压就可以。对于Stable的版本,如果有任何一个commit的更新,也会马上重新build 镜像上传。

真的是用户的福音啊。看上去技术含量不高,不过也真的是需要有想法的,才能做到那么贴心。

裸机管理

ironic,Kolla其实在Mitaka版本就已经merge,不过这个项目涉及硬件管理,一直都是问题多多。而且在Newton版本里,加入的多租户的管理,kolla一直都没法很好的支持ironic。

对于OpenStack社区来说,裸机管理也是一个重点,用户也是刚需。

这次在Ocata版本最后一周内,把ironic所有的问题全部都解决,包括多租户,console访问,都已经很好实现。

真正意义实现了裸机和vm在同一个网络里。

Neutron3大插件

Neutron3大插件,负载均衡,vpn,fwaaS,用户需求量最大的是负载均衡,这次kolla把这3个服务全部搞定。

最有价值的是负载均衡,是采用Ocatava,通过vm as service,通过一主一从的vm,提供负载均衡服务。

这个功能,对于很多网络厂商是非常有意义的,SDN设备都是需要对接这3个插件,可以通过修改driver的方式,连接各自的设备进行测试。

Big Tent项目

对于Ocata版本来说,基本可以说,已经把Big Tent的项目里90%以上都已经放到Kolla里,没放进去的,基本都是还在实验室,没有任何人投入过生产使用的项目。

对于已经merge的项目,其实需要做更多的测试,还有就是跨项目的调试。例如Sahara项目,如果要实现数据加密,就需要用到Barbican,那么这些方面的测试还是基本没做。

Ocata版本基本已经打好了一个非常好的基础,各个项目部署好以后,功能都是正常。每个OpenStack新版本发布,作为部署工具,其实都需要跟进,做相应的变更,否则很可能就跑不起来。在Ocata版本,kolla的社区开发者,对各个项目都是做了更新。

  1. Barbican
  2. Telemetry (Ceilometer,gnocchi,panko,aodh)
  3. Cinder
  4. CloudKitty
  5. Congress
  6. Designate
  7. Freezer
  8. Glance
  9. Heat
  10. Horizon
  11. Ironic
  12. Karbor
  13. Keystone
  14. Kuryr
  15. Magnum
  16. Manila
  17. Mistral
  18. Murano
  19. Neutron
  20. Nova
  21. Octavia
  22. Rally
  23. Sahara
  24. Searchlight
  25. Senlin
  26. Solum
  27. Swift
  28. Tacker
  29. Trove
  30. Watcher

一共集成了30个项目。大家测试的时候要注意,有不少项目是互相依赖,例如备份项目Karbor,需要Swift,如果没有安装swift组件,使用的时候会报错。

最后我们希望Kolla可以帮助更多的OpenStack项目,走向成熟,走向生产,同时也推动项目的发展。

Feb 232017
 

今天OpenStack的Ocata版本发布,Ocata版本算是OpenStack基金会成立以来,最短开发周期的的一个版本,不到五个月时间,从2016年10月底开完峰会到今天2017年2月23日。

短短不到半年的时间,OpenStack的社区贡献,其实已经发生的重大的变化。stackalytics统计也做了一个重大调整,默认设置统计是全部OpenStack项目,一直以来,stackalytics默认显示内容,对OpenStack的影响的非常深远。我大概回顾一下默认显示的变化过程。

stackalytics网站,是2013年出来,当时统计默认显示页面是按照代码行数来显示,也就是说这是最优先的指标。当时同事刚刚参加OpenStack社区贡献,通过完成了4个BP,提交了好几千行代码,当时处于OpenStack功能比较缺乏的阶段,也是一个变化快速的时候,这是指标作为默认显示,是很有意义的。

2013年下半年,stackalytics的统计默认显示改成Commit,这时候OpenStack的贡献者很多,大量的bug等待修复。记得很清楚,当时同事已经把精力专注于各种bug的修复。

2014年,stackalytics又做了调整,把Review的指标作为默认显示。这个时候OpenStack的项目,已经开始更加注重质量,Core Review显得更加重要。我同事也把精力放到Review项目的代码上,最终成为的Horizon项目的Core。

2013年到2014年,OpenStack增加项目,都是需要经过技术委员会批准,也就是TC approved,一共是12个项目,不过这种模式有点跟不上OpenStack的快速发展,那么到了2015年,决定不再采用TC approved方式增加项目,而是    引入Big Tent模式,项目数量从以前的TC approved 增加到超过60个项目。stackalytics对项目进行了分类,

在OpenStack下,包括

  1. TC-approved
  2. Offical
  3. Others

Offical项目里,包括全部Big Tent里的项目,也包括以前的TC-approved的项目,还有部分OpenStack CI要用的项目。

Other项目,就是没有进入Offical的项目,在孵化阶段,或者很小,工具类的项目。

2017年2月份,stackalytics默认显示,把统计项目从Offical,改成OpenStack,这样用户看到的统计数据就是全部OpenStack项目。这对后续OpenStack发展,还是有深远影响的。我的同事后来去了一家公司专门做社区开发,目前在OpenStack创立一个新的项目,还没有加入Big Tent,以前还比较头疼,在项目里所做的工作,无法默认显示在统计上,也导致项目的开发者参与积极性下降。现在一下子发生了改变,个人贡献在公司排名前十。

八卦完这段历程,我们就对Ocata统计进行盘点,我也是采用默认的,统计全部OpenStack项目的,我以前的文章其实都是Offical项目的。

总结

国内OpenStack经过那么多年的发展,已经取得很大的进步,在社区的项目里,已经逐步有自己的声音。会说中文的PTL,已经差不多有7位。社区贡献的指标,都已经能进入前十名。目前和前五名的差距,其实还是很大的,还是需要继续努力。

由于公司的原因,HPE基本算是退出OpenStack,第五名的位置,应该就是Intel。从各个指标来说,Intel还是在加大投入。

红帽基本在大部分指标上都压倒超过Mirantis。

国内的企业里,华为的贡献应该是最高的,有4位 Big Tent项目的PTL。在国内OpenStack创业公司里,九州云的贡献是最高的,拥有7位Core,并且在Kolla和Tacker项目里做出杰出贡献。

中兴进步很快,从Newton版本发力,在Ocata版本里很多指标都已经进入前十。目前已经拥有多个项目的Core。

 

完成BP数量

这可不是商业里的商业计划书,在OpenStack里,BP,是Blueprint的缩写,蓝图的意思,具体就是你希望在项目里实现的功能。这个指标其实是非常重要的,表示开发者对项目有想法,一个BP的完成周期,可能一个版本,也可能是2年,真的需要耐心。

Snap9

客观说,不同的项目,BP实现的难度是不一样的。数量是一个参考意义。

国内厂商:华为,九州云,中兴。华为位居第一,非常难得。九州云第五名。

Review指标

目前OpenStack的项目要求是任何的commit,都是需要经过项目里两位Core Reviewer同意(有些项目人少,一个Core Review同意就可以merge),Core的主要用途部署commit代码,是负责Review代码,保证项目的代码质量。以前大家对Core有误解,认为是提交代码。

Snap5

Review,每个人都能参与Review。社区里其实出现过过Review灌水,这样只会把自己的社区的名声搞坏,让社区开发者瞧不起。

目前国内华为,99Cloud进入了前十名,这也和他们Core比较多有关。

Commit指标

这个其实是大家认为最能体现出贡献的指标。很多厂商的PPT都会引用。

Snap6

这个指标,倒是很有意思,国内的厂商有3家进入,中兴,华为,九州云。

解决Bug数量

Snap8

国内厂商排名是华为,九州云, 中兴

代码行数

Snap10

代码行数,一直都是国内厂商的短板,这次就华为进入前十名。这块日后要加强。

人天统计

这个指标,可以看出社区开发人员的工作量,可以反映出一个公司在OpenStack投入。

Snap11

可以看到,华为,中兴投入还是很大的。简单计算,国内的成本,1000元人天,那么在Ocata办理,就相当于华为投入了285万,中兴投入了156万。

对于社区开发者投入的天数的统计,第一名是机器人,整个开发周期是141天。下面就是前10名的开发者。如果你想当项目的Core,那么就需要好好关注这个指标。

个人开发者投入时间上。

  1. 九州云的Jeffery zhang排在第三名,Kolla的核心开发者
  2. IBM的 Teng Qiming,排名第四,Senlin的PTL
  3. 华为的hongbin排名第六。Zun项目PTL
  4. 九州云的zhubingbing排名第十一,Kolla的核心开发者

很多朋友经常问我在那家公司,我这里就广告一下,九州云,kolla两位Core是我的team。

Snap13

Feb 222017
 

很久没动手,导致配置一点东西,基本完全忘记。这次要在CentOS 7.3 下装Kolla,好好把这个补回来。

我的习惯都是最小化安装操作系统,然后慢慢玩和调整。

关闭Selinux

这个就基本不需要讨论的事情,编辑  /etc/selinux/config

SELINUX=disabled

我习惯重启机器,查看selinux状态

# sestatus
SELinux status:                 disabled

关闭Firewalld

做实验的时候,端口无法访问的事情是经常发生的。不折腾了。

systemctl status firewalld
systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld
firewall-cmd --state

Epel

现在的epel源,已经很简单了。

yum install epel-release

查看repo情况

yum repolist

Hostname

对于很多环境,这是必须的。

cat /etc/hostname
kolla
# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.27.10   kolla.chenshake.com     kolla

检查

#hostname -F /etc/hostname

#hostname
kolla

#hostname -f
kolla.chenshake.com

同步时间

yum install ntp
systemctl enable ntpd.service
systemctl start ntpd.service

手工同步时间

ntpdate 0.centos.pool.ntp.org
Feb 142017
 

大家看我的blog,其实一直都没写过Kolla的安装过程,其实并不是我不想写,而是对于用户来说,参考我的文章,因为网络带宽的原因,他其实是很难照做的。

经过很多的尝试,在OpenStack的Ocata版本发布的时候,我想我应该已经有办法解决安装的各种问题。

我还是使用大家最常用的vmware workstation 12.0, CentOS 7.3 虚拟机来完成整个的验证过程。

准备工作

我习惯最小化安装CentOS 7.3,装完后,对他进行初始化的工作。

http://www.chenshake.com/centos-7-x-class/ 大家照做就可以,放到一个文档,显得太长。selinux,防火墙端口无法访问,主机名问题,都是安装的常见错误,大家一定要细心确认。

kolla的安装,要求目标机器是两块网卡,所以我虚拟机也是分配两块网卡,

  1. ens33,NAT网络里,设置的IP是:192.168.27.10,日后Horizon访问就是通过这个IP地址
  2. ens34,桥接模式,ip其实是dhcp分配,这个其实是让neutron的br-ex 绑定使用,虚拟机是通过这块网卡访问外网。

在机器上连接虚拟机,是通过ens33的IP进行访问,如果你通过ens34 ssh,安装过程,会导致ssh中断。

默认设置,其实两块网卡都是可以访问到互联网。也可以是其中一块网卡访问外网,对于测试来说,基本问题不大。

如果在服务器直接安装,两块网卡的IP,就算是同一个网段,也是没啥问题的。

以前安装kolla,必须自己build镜像,这样由于网络的原因,经常会导致在build 镜像的时候失败。这次我们直接采用kolla官方提供的镜像文件,这样就不需要自己build镜像的环节。

 

基础包

yum install python-devel libffi-devel gcc openssl-devel git python-pip

安装Docker

目前最新版本的Docker是1.3.1,Kolla目前支持的Docker是1.2.x,所以我们要指定Docker的版本来安装,并且一定要采用Docker官方的源,不能使用红帽的源,红帽的源的Docker是有bug。

设置repo

tee /etc/yum.repos.d/docker.repo << 'EOF'
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF

安装Docker 1.2.5

yum install docker-engine-1.12.5 docker-engine-selinux-1.12.5

设置docker

mkdir /etc/systemd/system/docker.service.d
tee /etc/systemd/system/docker.service.d/kolla.conf << 'EOF'
[Service]
MountFlags=shared
EOF

重启相关服务

systemctl daemon-reload
systemctl enable docker
systemctl restart docker

访问私有的Docker仓库

编辑  /usr/lib/systemd/system/docker.service

#ExecStart=/usr/bin/dockerd
ExecStart=/usr/bin/dockerd --insecure-registry 192.168.27.10:4000

重启服务

systemctl daemon-reload
systemctl restart docker

Ansible

Kolla项目的Mitaka版本要求ansible版本低于2.0,Newton版本以后的就只支持2.x以上的版本。

yum install ansible

Registry 服务器

默认docker的registry是使用5000端口,对于OpenStack来说,有端口冲突,所以改成4000

docker run -d -v /opt/registry:/var/lib/registry -p 4000:5000 \
--restart=always --name registry registry:2

下载kolla官方提供的镜像

http://tarballs.openstack.org/kolla/images/

这是kolla官方提供的镜像给CI使用,只保留最新版本和最新的stable版本。大家可以下载Ocata版本

wget http://tarballs.openstack.org/kolla/images/centos-source-registry-ocata.tar.gz
tar zxvf centos-source-registry-ocata.tar.gz -C /opt/registry/

这样就把kolla的docker镜像文件放到Regisitry服务器上。

kolla-ansible

下载kolla-ansible的代码

cd /home
git clone http://git.trystack.cn/openstack/kolla-ansible

安装kolla-ansible

cd kolla-ansible
pip install .

复制相关文件

cp -r etc/kolla /etc/kolla/
cp ansible/inventory/* /home/

如果是在虚拟机里装kolla,希望可以启动再启动虚拟机,那么你需要把virt_type=qemu,默认是kvm

mkdir -p /etc/kolla/config/nova
cat << EOF > /etc/kolla/config/nova/nova-compute.conf
[libvirt]
virt_type=qemu
EOF

生成密码文件

kolla-genpwd

编辑 /etc/kolla/passwords.yml

keystone_admin_password: chenshake

这是登录Dashboard,admin使用的密码,你可以根据自己需要进行修改。

编辑 /etc/kolla/globals.yml  文件

kolla_internal_vip_address: "192.168.27.11"

kolla_install_type: "source"
openstack_release: "4.0.0"
docker_registry: "192.168.27.10:4000"
docker_namespace: "lokolla"
network_interface: "ens33"
neutron_external_interface: "ens34"

192.168.27.11,这个ip是一个没有使用的的ip地址,他是给haproxy使用,单节点其实压根没有意义。

安装OpenStack

kolla-ansible deploy -i /home/all-in-one 

验证部署

 

kolla-ansible post-deploy

这样就创建 /etc/kolla/admin-openrc.sh 文件

安装OpenStack client端

pip install python-openstackclient

编辑 /usr/share/kolla-ansible/init-runonce,根据自己需求进行修改,我改成国内的镜像下载,速度快。

IMAGE_URL=http://images.trystack.cn/0.3.4/

网络需要根据实际情况修改

#IMAGE_URL=http://download.cirros-cloud.net/0.3.4/
IMAGE_URL=http://images.trystack.cn/0.3.4/
IMAGE=cirros-0.3.4-x86_64-disk.img
IMAGE_NAME=cirros
EXT_NET_CIDR='192.168.12.0/24'
EXT_NET_RANGE='start=192.168.12.30,end=192.168.12.40'
EXT_NET_GATEWAY='192.168.12.1'

这里解析一下,192.168.12.0的网络,就是我上面ens34接的网络,这个网络是通过路由器访问互联网。这个地方需要好好理解。配置好这个,装完虚拟机就可以直接ping通。

 

运行

source /etc/kolla/admin-openrc.sh
cd /usr/share/kolla-ansible
./init-runonce

最后你可以创建一个虚拟机来玩玩,根据最后的命令提示

openstack server create \
    --image cirros \
    --flavor m1.tiny \
    --key-name mykey \
    --nic net-id=2ba93782-71e2-44d6-ad64-796c5853dcce \
    demo1

这个时候,你可以登录Dashboard,给虚拟机分配一个floating ip,如果顺利,你应该就可以直接ping 通 floating ip的地址。

 

参考文档

http://docs.openstack.org/developer/kolla-ansible/quickstart.html

http://www.cnblogs.com/lienhua34/p/4922130.html

https://gist.github.com/jeffrey4l/c69688180b056d08a0c1733e24193143

Feb 082017
 

从2016年开始,OpenStack项目的PTL从以前的1年选举一次,改成半年选举一次。也就是项目的当前版本开发周期RC1发布前后,就要开始下一个版本的PTL的选举。

根据 https://releases.openstack.org/ocata/schedule.html Pike版本的PTL选举将要在1月底举行,首先是提名,如果一个项目提名人只有一人,那么就自动当选。如果超过2人,就要进行投票,在过去1年里,参与过该项目提交过commiter都是有资格进行投票。如果该项目没人竞选,那么这个项目将会很可能移除Big Tent。

目前所有Big Tent管理的项目 https://governance.openstack.org/tc/reference/projects/index.html

经常会增加或减少项目,截止到2017年2月24日为止,是61个项目,也就意味着我们需要选举出61位PTL。

OpenStack专门一个一个地方管理项目候选人的竞选 https://github.com/openstack/election/tree/master/candidates

大家可以通过这里了解不同版本的PTL的情况。

  1. Rackspace:10个项目PTL(Designate,Document,Glance,Keystone,Magnum,Octavia,OpenStack-ansible,Requirements,Solum,Stable Branch Maintenance)
  2. IBM :7个项目PTL(Community App Catalog,Nova,Quality Assurance,RefStack,Security,Senlin,Storlets)
  3. Redhat:6个项目PTL(ironic,Kuryr,Puppet,Sahara,Telemetry,Tripleo)
  4. Mirantis: 5个项目PTL(Fuel, Neutron,Deb,Rpm,Rally)
  5. 华为 :4个项目PTL(DragonFlow,Karbor,Tricircle,Zun)
  6. HPE:3个项目PTL (Freezer,Monasca,Searchlight)
  7. Intel :2个项目PTL(OpenStackClient,Kolla)
  8. Cisco:2个项目PTL(Barbican,Horizon)
  9. Nokia:2个项目PTL(Mistral,Vitrage)
  10. OpenStack Foundation:2个项目PTL (Release Management,Infrastructure)
  11. 个人身份当选:2个项目(Congress,I18n)

大陆这次两家OpenStack创业公司99cloud,获得Tacker项目PTL,EasyStack,获得Olso项目PTL。台湾地区创业公司inwinSTACK,Heat的PTL。

研究了一下,PTL里,会说中文的大概有7位 (Heat,Oslo,Senlin,Tacker,Tricircle, Zaqar,Zun)

我就根据项目的字母排序,进行介绍一下。同时也统计一下PTL归属那个厂商。

项目 PTL 公司
Barbican Dave McCowan Cisco
Chef OpenStack Jan Klare Cloudbau
Cinder Sean McGinnis Dell
Cloudkitty Christophe Sauthier Objectif Libre
Community App Catalog Matthew Wagoner IBM
Congress Eric K 个人
Designate Tim Simmons Rackspace
Documentation Alexandra Settle Rackspace
Dragonflow Omer Anson Huawei
Ec2 Api Alexandre Levine Cloudscaling
Freezer Saad Zaher HPE
Fuel Vladimir Kuklin Mirantis
Glance Brian Rosmaita Rackspace
Heat Rico Lin inwinSTACK
Horizon Rob Cresswell Cisco
I18n Ian Y. Choi 个人
Infrastructure Jeremy Stanley OpenStack Foundation
Ironic Dmitry Tantsur Redhat
Karbor Yuval Brik Huawei
Keystone Lance Bragstad Rackspace
Kolla Michal Jastrzebski   Intel
Kuryr Antoni Segura Puimedon Redhat
Magnum Adrian Otto Rackspace
Manila Ben Swartzlander NetApp
Mistral Renat Akhmerov Nokia
Monasca Roland Hochmuth HPE
Murano Felipe Monteiro AT&T
Neutron Kevin Benton Mirantis
Nova Matt Riedemann IBM
Octavia Michael Johnson Rackspace
OpenStackAnsible Andy McCrae Rackspace
OpenStackClient Dean Troyer intel
OpenStack Charms James Page  Canonical
Oslo ChangBo Guo EasyStack
Packaging Deb Thomas Goirand Mirantis
Packaging Rpm Igor Yozhikov Mirantis
Puppet OpenStack Alex Schultz Redhat
Quality Assurance Andrea Frittoli IBM
Rally  Andrey Kurilin Mirantis
RefStack Catherine Diep IBM
Release Management Thierry Carrez OpenStack Foundation
Requirements Tony Breeds Rackspace
Sahara Telles Mota Vidal Nóbrega Redhat
Searchlight Steve McLellan HPE
Security Robert Clark  IBM
Senlin Qiming Teng    IBM
Solum Devdatta-kulkarni Rackspace
Stable Branch Maintenance Tony Breeds Rackspace
Storlets Eran Rom IBM
Swift John Dickinson  SwiftStack
Tacker Gongysh Gongysh 99Cloud
Telemetry Julien Danjou Redhat
Tricircle Chaoyi Huang Huawei
Tripleo Emilien Macchi Redhat
Trove Amrith Amrith Tesora
Vitrage Ifat Afek Nokia
Watcher Alexander Chadin Servionica
Winstackers Claudiu Belu ClouBase
Zaqar  Fei Long Wang Catalyst IT
Zun Hongbin Lu Huawei
Jan 232017
 

这是今年第一份kolla的月报,1月26号,OpenStack将要发布Ocata版本的B3。由于OpenStack的发布周期调整,对于Ocata版本来说,变得很特别,整个开发周期,也就只有4个月左右。2月3日就标记RC1,2月24日,正式发布。

对于Kolla这种部署项目,OpenStack TC (技术委员会)要求是Ocata版本发布后2周,也就是3月10号发布。所以Kolla Ocata版本,4.0,将会在3月10号发布。

https://releases.openstack.org/ocata/schedule.html

对于Kolla来说,Ocata版本还需要进行Repo的拆分,把Kolla拆分成Kolla和Kolla-ansible。这也是为了日后的发展需求,不过Repo拆分,肯定也会影响开发的进展,CI需要重新构建,这都是会影响开发的进度的。

整个Ocata版本,贯穿老外的圣诞节,中国的春节。项目的很多设想,和实际进展,其实是差距比较大的。不过对于Kolla来说,在Ocata版本,取得的进展,其实是远远超过Kolla的PTL的预计。

这是Kolla Offical项目 Ocata版本到2017年1月23日的数据(包括kolla, kolla-ansible, kolla-kubernetes),大家看底下的数据,不用仅仅关注第一,还有很多很有价值的信息。

Kolla项目的Independent的贡献比例非常高,很可能是所有OpenStack项目里最高。大家要留意others的比例,这个比例越高,能很好说明这个项目的活跃度,参与度。

Snap1

irc0继续竞选PTL

1月份其实还是项目的PTL竞选,irc0,代表intel担任在Ocata版本担任PTL,目前已经在申请下一个版本的PTL,当选应该问题不大。不过后续,他如何兑现他的诺言,找intel要300台机器来给Kolla做测试,这个是需要他好好考虑的。

在Ocata版本里,Intel其实是投入了不少人手参与Kolla的开发,贡献了很多很有价值的功能。

  1. Opendaylight
  2. dpdk

尤其是DPDK,对kolla项目未来发展,还是非常有帮助的。预计在Ocata版本merge,问题不大,这个就不需要怀疑。

Kolla优化

在Ocata版本里,Kolla要解决掉上次100台机器测试所遇到的问题。

部署一次Kolla,需要30分钟,却发现修改配置,也差不多需要同样的时间,当规模大的时候,变得不可接受。

https://review.openstack.org/#/q/status:open+project:openstack/kolla-ansible+branch:master+topic:bp/better-reconfigure

工作量很大,不过必须在3月10号发布前完成。这基本是Ocata版本的一个重点。

另外一个端口检查的优化。以前是安装kolla的时候,会把所有的项目要求的条件都检查一遍,这样导致很浪费时间,现在是把检查放到每个项目里,只有你启用该项目,才会对条件进行检查,这样更加合理。这个代码重构,已经全部完成。

 

Ironic

对于Kolla来说,如何应对初始化的操作系统安装,其实大家都在解决这个问题。利用ironic,是一个思路。不过罗马不是一日建成的。Kolla的ironic,先要能用起来。

经过张雷同学的努力,目前ironic inspector已经修复,可用。这是一个令人振奋的feature,很多人已经着急的不得了。下一步,就是解决ironic的多租户问题,目前ironic支持多租户的网络,对你交换机是有要求的,只支持Cisco,华为的等有限几款交换机,不过幸运的是,我实验的交换机支持,所以Kolla的ironic支持多租户,应该是问题不大。

Panko

Telemetry项目,包括Ceilometer,aodh,Panko,Gnocchi,目前Ceilometer项目的拆分功能,已经进行最后的阶段。很多以前ceilometer的功能,都会去掉,你只能使用aodh和panko。

目前Kolla的Panko,在朱冰兵同学的努力下,已经merge。到目前为止Cloudkitty+Telemetry一整套组件,全部merge。另外包括Grafana,Collectd的组件,Kolla也已经集成。后续我们需要的是解决前端展示的问题。

对于Cloudkitty项目,他是通过调用Aodh,Panko来实现计费功能,目前国内对Cloudkitty项目关注度很高,也已经有两位项目的Core,希望可以在Ocata版本给大家带来一个惊喜。

NTP服务

Ceph存储的故障,估计20%都是因为时间没同步造成的,所以NTP服务就显得很重要。对于Kolla来说,如何解决时间同步的问题呢?

Kolla的设计理念,我的理解就是不对目标机器进行任何的修改。甚至包括NTP服务。目前Kolla考虑把ntp也放到Docker里,为理想而奋斗。

张雷同学负责,已经merge

多Region和Cell V2支持

欧洲原子能机构,应该是OpenStack最大的科研用户,他们就是通过Cell的功能,实现大规模的支持,OpenStack的Cell的功能,其实都是他们在帮忙完善。目前Kolla已经在积极支持Cell v2。后续如果他们可以采用Kolla来部署OpenStack,真的是一个重大利好。

多Region,也已经在日程中,对于Kolla来说,实现代价不大。就看时间进度安排。

 

Big Tent项目

对于一个OpenStack部署工具来说,对OpenStack支持数量,质量,是一个用户重要考虑的指标。目前一月份已经Merge的项目

  1. Karbor
  2. Designate
  3. Freezer

在Master开发的项目有

  1. Dragonflow
  2. Monasca
  3. Zun
  4. Vitrage
  5. Zaqar

可以这样说,Kolla所有需要集成的项目,都已经在Master里,目前Kolla已经在2月1日以后,停止BP的merge,专注bug修复,所以这些BP,就只能在下一个版本来完成。

Ocata版本上面的项目开发,其实和以往有很大的不同,我邀请各个项目的Core或PTL帮忙review,这次Dragonflow的马力同学,Zaqar的王飞龙,Zun的Hongbin Lu,Karbor的华为团队,都参与的Kolla的项目的review,大大提高的Kolla的项目的代码质量。

我同事曹威同学负责Dragonflow项目,得到马力同学的大力支持。在实现过程中,还发现Dragonflow放2个bug,目前马力同学在修复中。只有大家在社区里密切合作,才能把OpenStack做的更加强大。