Dec 032017
 

Kolla第一个真正意义上可以在生产部署的版本Ocata版本发布以后,经过半年多的验证,其实这次11月份的OpenStack峰会上,其实也体现出来,越来越多用户在尝试和测试。

Ocata版本

由于Kolla,是一个开源的项目,他支持CentOS,Ubuntu,source和二进制的部署方式,采用不同的方式,你可能面对的问题是不一样的。那么对于我来说,或者国内来说,

Kolla Ocata Source+CentOS 7.4 + Dcoker CE =Perfect

这个组合应该应该了很多客户生产的验证。可以这样说,Kolla生产中稳定性,可靠性的所有的问题。都已经彻底解决。

一个系统的稳定,可靠,真的不是靠拍胸口来证明的。需要生产环境下的长期压力测试,

这样说吧,现在对付100个节点的OpenStack群集规模,已经是可以轻松面对。

kolla控制节点扩容

用户经常质疑OpenStack的一个问题就是:在Vmware的环境下,我可以从一个节点开始使用,逐步增加节点。为啥OpenStack上来就需要3个控制节点呢?刚开始节点,我还不需要那么高可靠,我还打算周末关机省电呢?

简单来说,就是OpenStack群集的控制节点,能不能从1个扩展到3个。目前市场上,所有的部署工具,都是无法支撑的这个功能的。当年Fuel尝试了一下,也放弃了。

对于kolla来说,其实很简单,你部署第一个控制节点的时候,只需要设置好haproxy的IP,那么剩下的都是好办的。

从1个控制节点,增加到3个控制节点,从3个控制节点,扩展到5个控制节点,都是轻松面对。

OpenStack项目状况

Kolla基本集成了所有OpenStack项目,那么那些项目是可用的呢。我就整理一下把。方便大家测试,针对目前的Ocata版本

生产环境

  1. Nova (kvm)
  2. Neutron(L3HA)
  3. Cinder(Ceph)
  4. Glance(Ceph)
  5. Keystone (AD)
  6. Horizon
  7. Heat
  8. swift

上面这8个项目,应该算是经过了大量验证,已经达到完美的情况,应该来说,100个节点内,应该是轻松面对。

  1. Octavia,负载均衡项目,其实该项目也是可以生产使用,目前就是Horizon UI上有点逻辑问题,导致删除的功能不能正常,需要命令行下删除。他的架构,也是可以支撑大规模部署。VM As Service
  2. IRonic,裸机管理,这个功能其实目前是非常好用。包括多租户,都是支持。
  3. Sahara,大数据服务,功能都是正常的。
  4. Rally,部署完OpenStack,进行压力测试,这块我费了很多心思,也是可以很好支持。完全是可以玩起来。

OpenStack Big Tent底下,所谓官方项目,大概目前是60个左右,用户需要用到的项目大概有30多个,不过真正意义上,能投入生产,经过用户验证的,也就上面这12个项目。其实如果你去看红帽的OpenStack支持列表,也是差不多的。

可用项目

下面我整理一下大家可以关注的项目,或者需要大家去测试的项目,希望我们可以努力去完善。

  1. Barbican:密钥管理项目,很多项目的安全,cinder,sahara的数据加密,都是需要这个组件来完成。
  2. Designate:dns项目,由于OpenStack平台如果希望支持k8s,需要使用外部dns服务,受到大家重视,该项目也是可以好好测试,目前kolla里也是比较重视。
  3. Manila: Netapp和EMC一直都在支持,目前对Ceph集成,也在完善。值得去看看。也是因为K8s,再次受到重视。
  4. Mistral:工作流项目,目前例如tacker,都用它来做流程。kolla也是work。
  5. Magnum:部署k8s工具,这个工具,目前是可用,经过我们测试。
  6. kuryr:k8s网络相关,
  7. zun,容器管理项目,替代nova docker。
  8. Dragonflow: 华为,中兴都在玩,很难得的事情。

实验室

这些项目,一直都没真正意义跑起来,目前社区也存在严重问题,缺乏后续发展

  1. CloudKitty
  2. Congress
  3. Freezer
  4. Karbor
  5. Monasca
  6. Murano
  7. Searchlight
  8. Senlin
  9. Solum
  10. Tacker
  11. Telemetry(aodh,panko,ceilometer)
  12. Trove
  13. Vitrage
  14. Watcher
  15. Zaqar

上面15个项目,其实已经基本都没有全职的人员在干活,非常危险了。据说已经成为国内刷榜的重点地带。

Nov 302017
 

整理一下同事的笔记。

yum install epel-release
yum install axel vim git curl wget lrzsz gcc  python-devel yum* python-pip

设置docker官方repo,安装docker CE版本

yum-config-manager \
--add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce
docker -v
配置docker
mkdir /etc/systemd/system/docker.service.d
tee /etc/systemd/system/docker.service.d/docker.conf << 'EOF'
[Service]
MountFlags=shared
EOF
编辑 /usr/lib/systemd/system/docker.service
# ExecStart=/usr/bin/dockerd
ExecStart=/usr/bin/dockerd --insecure-registry 192.168.10.139:4000

启动docker

systemctl daemon-reload
systemctl restart docker
systemctl enable docker
docker info

registry服务器

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

监控系统

涉及很多软件,很有代表性:Prometheus,grafana,alertmanager,exporters

Prometheus

https://prometheus.io/docs/prometheus/latest/installation/

docker run -p 9090:9090 -v /tmp/prometheus.yml:/etc/prometheus/prometheus.yml \
       prom/prometheus
Nov 242017
 

听了不少课程,看了几本书,感觉还是很模糊。不过看图,确实是可以加快我的理解。希望这下面一切,都可以很快在OpenShift验证一遍。

目前的想法是通过jenkins作为调度,Jenkins需要启用的插件

  1. Robot Framework
  2. sonarqube (java)
  3. Unit Testing

默认OpenShift平台的Jenkins插件,自带下面插件

  1. OpenShift pipeline plugin
  2. OpenShift Client Plugin
  3. OpenShift Sync Plugin
  4. OpenShift Login Plugin
  5. Kubernetes Plugin

https://github.com/openshift/jenkins

jenkins

jenkins1

jenkins_is_the_hub_CD_Devops

Nov 092017
 

通过图来了解一个软件,效果应该是最好的。

部署架构图

ocp_smart_start_diagram

What isOpenShift

Snap1

Roadmap

Snap2

流程

Snap3

  1. developer provides git repo
  2. Developer chooses image from grgistry
  3. layer is applied to image
  4. layer is added back to registry
  5. image is scheduled and deployed
  6. Developer can declare webhooks
  7. updated image is added back to the registry
  8. New Images is depoyed as rooling update

Snap5

Compare

Snap4

Architecture

Snap6

Nov 042017
 

这个软件,对我来说,真的是那句话,既熟悉又陌生。在OpenStack的开发世界里,其实基本会天天听到Jenkins这个单词,但是我自己真的没玩过。

不过最近要搞PaaS,要给开发提供平台使用,那么这种常用工具,我就必须了解。

快速了解一个软件,项目,如果是成熟的,其实很简单,就是youtube看视频,Slideshare看PDF。基本很快就能让你熟悉起来。

很快就可以找到Jenkins的一系列教程,选择一套,发现Jenkins的视频,很多都是老印讲的,听老印的英文,其实还可以,他们讲的内容,还是整理的非常不错。一共是16章,我确实听完,感觉是有一个初步了解。

Jenkins Beginner Tutorial,一共16段,感觉做的还是非常不错。

Introduction and Getting Started

Jenkins是一个java开发的应用,用途是实现 CI/CD.大概的玩法是

Snap1

Jenkins背后也是有不少故事,

Jenkins was originally developed as the Hudson project. Hudson’s creation started in summer of 2004 at Sun Microsystems. It was first released in java.net in Feb. 2005.[7]

https://en.wikipedia.org/wiki/Jenkins_(software)#History

Jenkins的官方网站

https://jenkins.io

当前Jenkins版本是:2.73.2 。

安装Jenkins,其实很多方式,通过java启动,

How to setup Jenkins on Tomcat

这是讲如何通过Tomcat来启动Jenkins,都是java相关知识。windows,mac,linux都会有所不同。这个都是一个比较简单的过程。

启动的时候,要注意避免端口冲突就行。默认jenkins是8080启动。

How to change Home Directory

就是改变jenkins默认存放文件的位置。这个需要自己深入一下,了解一下目录下有什么内容。基本jenkins的所有相关,都会在这个目录下。

How to use CLI (command line interface)

其实就是客户端,如何用命令行来进行相关工作。如何安装客户端和使用。

对client端来说,验证和jenkins的地址,是必须知道的。这方面需要记住。

How to create Users + Manage + Assign Roles

这章我认为是技术含量最高,同时也比较震撼,一个开源软件,权限管理,居然做的如此牛,这是很少见的。估计这也和他是sun开源有关。

对于jenkins,功能基本都是通过插件来添加。搞清楚权限管理,是非常必要的。

Basic Configurations

在web界面对jenkins进行配置,需要理解的东西不少。软件的帮助做的很好,不明白,旁边直接可以看帮助和例子。

Getting started with JOBS

演示如何创建一个job。多个job互相如何关联,这是核心啊。

Jenkins integration with GIT (SCM)

如何和git集成,现实中,必须是和git集成。如何代码修改,就触发构建。这都是挺有意思的。

How to use CATLIGHT (Jenkins Build Monitor)

这是一个桌面软件,帮助你实时了解jenkins的job运行状况,非常酷。能大大提高效率。

What is Automated Deployment

这个是必须看。

Snap2

How to do Automated Deployment

看视频

Notifications – How to send Email from Jenkins

就是邮件通知的一个设置。

What is Pipeline in Jenkins

介绍pipeline,很有意思,单词的含义到具体的使用。

How to setup DELIVERY PIPELINE in Jenkins

新版本pipeline是重点。

How to setup BUILD PIPELINE in Jenkins

What is BLUE OCEAN

这是新版本的jenkins的UI,结合pipeline.

Nov 022017
 

对于OpenStack社区来说,一般峰会开完前,大家都比较懒惰,处于休息状态。该干活的,都是开完峰会以后再做。

对于Kolla来说,倒是有不少东西可以说一下。

我最近搞OpenShift,发现K8s的其他公司,基本很难找到机会,因为红帽已经认定的方向,并且OpenShift挣了大钱,收入排第二位,操作系统第一位。

对于OpenStack厂商来说,由于红帽犯了一些错误,内部斗争等原因,导致红帽的OpenStack没真正做起来,其实就是没给公司创造太多价值。这样OpenStack创业公司才能有口饭吃。

Ansible,Ceph,都是红帽的,cobbler也算是红帽的,kolla的PTL,也是红帽工程师。

OpenStack现在一年2个版本,大家都叫吃不消。K8s一年4个版本,红帽的OpenShift还在紧跟,这就是区别啊。

2年历程

2015年,也大概是10月份,我第一次见到Jeffrey zhang。也基本上从哪个时候,我们开始搞Kolla。

Jeffrey zhang  Kolla的第一个commit  https://review.openstack.org/#/c/242339/

遇到Jeffrey zhang,无论对我还是Kolla项目,都是一件非常幸运的事情。

可以这样说,因为Jeffrey Zhang,Kolla项目的成熟度,提前了至少半年时间。让Kolla在Mitaka版本,可以正式服务客户,同时也搞出全球第一个kolla的生产案例,一个规模非常不小的案例,53台超融合架构的环境,考验了Kolla灵活性,强壮性。

可以这样说,2015年4月份的时候,全球有能力落地kolla的,应该不会超过5个人。

 

Ocata版本

OpenStack的Newton版本,经过一年的时间,现在已经正式宣布退役,不再维护。那么对于Kolla来说,Newton版本退役,其实是甩掉了一个包袱。

因为kolla在Ocata版本进行了代码的拆分,kolla 和Kolla-ansible。导致都后续很难对Newton版本进行代码维护。

Ocata版本,也是非常特别,第一个改变发布时间的版本,从4月份发布,改成2月份发布。对于kolla来说,Ocata版本,是4.0的版本,这算是一个真正推向客户的版本。

从Mitaka版本到Ocata版本,整整一年的时间。用户也开始慢慢接受Kolla,OpenStack放到容器里跑。

经过了用户了大量测试和开发半年的维护,目前Ocata版本的Kolla,已经非常稳定。在Pike版本修复的bug,全部都回馈到Ocata版本。

其实我们在5月份,给用户上Ocata版本的Kolla的时候,也遇到不少所谓坑。不过这些坑,都已经填平。简单说

CentOS 7.4+Ocata的Kolla,就等于非常稳定,可以放到生产运行。

可以这样说,OpenStack以前任何一个新的版本,都没有Ocata普及的快。发布不到半年,用户已经达到相当的规模。

市场新闻

10月份OpenNFV发布了一个版本,Kolla被集成了一次。那么这也可以看到Kolla的优势。无论是SDN,NFV,最终交付给客户,以前都是非常复杂的,如果容器化后,结合Kolla,那会非常简单。

现在OpenNFV,OpenDaylight,官方的安装文档,都是用Kolla来集成,

红帽的Tripleo版本,也要全面转向kolla,使用kolla的镜像,不过他们还是用puppet来玩。不过这个太折腾。

kolla社区

相比别的OpenStack项目,kolla的热度是非常高的。有想法,追求的,还是很多的。

  1. Xen的支持
  2. 微软Hyper-v,也要容器化
  3. Prometheus,容器的监控
  4. Manila的CephFS支持

文档也在进一步完善。

FAQ

很多朋友都问我一个问题,甚至包括Kolla的社区开发者,我有没有留一手,在kolla上面。

是否留一手,道理很简单,是否会带来利益。如果留一手,你能获得更多的客户,那肯定会留一手。不过玩开源,想通过留一手来获取客户,其实是注定失败。没有客户会因为你留一手,给你单子。只会因为你留一手,丢失了一个kolla的潜在用户。

正确的玩法,就是让Kolla无比好用,大家用的很爽。根据长尾理论,总会有客户找你提供服务。

威力已经在发挥中。