其他分享
首页 > 其他分享> > K8S容器化OpenStack为哪般?

K8S容器化OpenStack为哪般?

作者:互联网

美国东部时间5月8日,OpenStack峰会在波士顿Hynes会议中心盛大开幕,此次峰会首现Kubernetes Day,K8S技术社区特约记者王博在现场发回报道:


本届波士顿峰会上有多个session介绍了在kubernetes之上运行openstack的相关话题,session的subject列在下面,这里我们做简要的总结和梳理。


Make Both OpenStack and Kubernetes a Fail-Safe: a.k.a OpenStack on Kubernetes

Cloud Native Computing with Kubernetes and OpenStack

Hands-On Workshop: Learn How to Deploy OpenStack on Kubernetes.

OpenStack on Kubernetes: One Year After


为什么要使用kubernetes编排openstack呢?


主要想利用kubernetes提供的scalling up, rolling upgrade功能实现对openstack各组件lifecycle的管理。下面举例说明可以解决哪些问题:


  1. 某时间段,系统中对keysotne访问量增加,可以通过scalling up增加keystone services的数量

  2. 已经在运行的openstack平台,需要升级某个组件,可以利用rolling update方式解决升级

  3. openstack组件容器化之后,各组件运行依赖通过容器隔离,可以解决Mitaka版本的nova和Netwon版本的keysotne可以在同一个Controller node上运行互不影响


图片


目前,我们有多个工具选择可以在kubernetes上部署openstack,如下图:


图片


这里我们选择openstack big-tent的项目openstack—helm,做简单介绍。


首先介绍下Helm和Charts。Helm,是Kubernetes的软件包管理器。Charts用来定义和配置可安装的Kubernetes资源包。


openstack-helm包含了openstack中的各个组件容器化定义的Charts,利用Helm对具体Charts做安装部署。用户使用openstack-helm可以部署单个openstack组件,也可以部署整个openstack环境。


图片


这里我们不做更多的细节介绍,但是其中有很多技术细节和难点需要考虑,例如:


1. 数据库集群是否需要有状态,如果扩缩如何保证数据一致性

2. 如何实现各组件api服务的高可用问题

3. 哪些组件需要使用daemonset部署

4. 如何使用Node affinity 保证某些组件部署到指定节点


总结


我们使用容器平台的最终目的是将应用容器化。在kubernetes上将openstack容器化算是一个复杂又有趣的实践,除了可以利用kubernetes的特性解决openstack运维的问题,也可以为应用容器化积累大量宝贵经验。如何玩转openstack+kubernetes以解决更多的问题,相信随着大家的深入使用会有更精彩的答案。


标签:容器,kubernetes,Kubernetes,哪般,openstack,组件,OpenStack,K8S
来源: https://blog.51cto.com/15077561/2584813