摘要:8月31日,备受业界关注的OpenStack第18个版本Rocky正式发布。在人工智能,机器学习,NFV和边缘计算等用户的驱动下,Rocky版本的OpenStack变得比以往更强大,它带来了数十种增强功能,并支持各种硬件架构,包括裸机管理服务等,这些更新和升级能够很好的满足基础设施的新需求。OpenStack正力争为业界提供一个开放,完善,稳定,功能齐全的最优解决方案。即日起九州云将围绕Rocky版本,对部分重点项目的新特性进行展示,业界需要掌握的关键点都在这里。
在首期小编将重点介绍Magnum项目在R版本的更新情况。Magnum 是由 OpenStack Containers Team 开发的一项 OpenStack 服务,旨在将容器编排引擎作为 OpenStack 的一等资源,为OpenStack用户提供无缝的容器运行体验。通过Magnum,你可以想创建一个虚拟机一样创建一个容器集群,开箱即可用,而无需操心COE部署及网络调整,Magnum帮你解决了这些麻烦。借助OpenStack服务,Magnum还提供了COE不具有的多租户认证鉴权和多租户网络隔离等功能。
Magnum 架构及工作流程
Magnum不会直接去管理和部署集群所需资源,而是把创建集群所需资源解释成heat模板,由heat编排集群所需的计算、网络、镜像和存储资源完成集群创建。
和诸多核心项目相较而言,Magnum还是一个比较新的OpenStack项目,但经过几个版本的迭代,Magnum基本功能已经稳定,新的功能也在开发中。随着OpenStack Rocky版本的推出,Magnum也推出7.0.1和7.0.0版本。先来看看这次Magnum都更新了什么?
Magnum项目功能更新
k8s_fedora_atomic集群支持基于角色的权限控制(RBAC)功能。
引入'fedorations'API端点,这个功能允许管理员可以将多个magnum集群作为一个集群管理,即所谓的“集群联邦(cluster fedoration)”这项功能目前还在开发中,更多信息请参考Gerrit Code Review。
多主节点配置下使用负载均衡减少浮动IP占用。
新增cert_manager_api 标签以启用k8s证书管理API。
现在默认将证书写入Kubernates的配置文件中,而不是生成额外的文件,若要使用旧版本特性,请使用output-certs选项。
新增k8s_fedora_atomic驱动的cloud_provider_enabled标签,默认为True。
新增ingress_controler和ingress_controler_role标签以支持k8s集群ingress控制器部署。ingress_controler默认值为""(即不部署控制器)可选值为traefik。
启用了Octavia服务的OpenStack环境下,k8s负载均衡现在不仅可以用于集群主节点的高可用行,也可为k8s提供负载均衡服务。
更新k8s图形化界面,增强ks8资源监控能力。k8s图形化界面更新至v1.8.3,同时heatpster(k8s的一款计算资源分析软件)组件现在会被单独部署,用户可以使用influx_grafana_dashboard_enabled标签来启用grafana-influx。
更新k8s_fedora_atomic驱动至最新的Atmoic 27,etcd和flannel服务从基本操作系统中移除,改为在系统容器中运行。
弃用功能声明:现在Magnum默认情况下不会收集k8s集群信息并发送到消息总线中,如果用户想监控k8s资源情况,heapster或其他工具可以做得更好,所以Magnum计划在Stein版本去掉这个功能。
总结起来Rocky版本的Magnum有如下特性:
容器集群完整生命周期管理标准API;
容器集群多租户支持;
多COE选择:包括 Kubernetes, Swarm, Mesos, DC/OS;
多容器集群部署环境选择:虚拟机或裸机;
基于Keystone的多租户安全和认证管理;
基于Neutron的多租户网络控制和隔离;
基于Cinder的容器卷服务;
OpenStack集成:云用户单点登录体验;
容器集群访问加密;
Magnum 相关术语介绍
集群
一个集群是Magnum用于启动COE的结构。在集群创建好后用户可以直接在集群上添加容器或者通过COE部署容器,如使用K8S时创建Pods,集群基于集群模板创建。
集群模板
Magnum的集群模板相当于Nova的Flavor。它定义了集群的COE,秘钥对和镜像。
容器编排引擎
COE管理一个或多个容器生命周期,即容器集群的管理软件。Magnum支持多种COE,包括Docker Swarm, Kubernetes, 和 Mesos,每种COE各有优劣。
标签
标签是声明某些COE特定参数的常用方法,标签的格式为"key/value",他们将会被使用它们的驱动解释。
集群驱动
集群驱动是Python代码、heat模板、脚本、镜像和某特定COE文档的集合。集群驱动为COE提供和管理COE运行所需资源。
Kubernate 相关术语介绍
Kubernate是流行的容器编排引擎之一,也是Magnum文档中最常用于演示的COE,对K8S有所了解有助于阅读Magnum文档。
Pod
在K8s中,Pod是最小的资源调度单位。一个Pod是运行于同一环境的强耦合应用程序的组合。一个Pods由1个或更多容器组成。Pod的管理是由K8s完成,换言之,Magnum不会管理Pod。更多关于Pod的信息参考Kubernetes(k8s)中文文档 名词解释 Pods_Kubernetes中文社区。
Replication controller
Replication Controller 保证了在所有时间内,都有特定数量的Pod副本正在运行,如果太多了,Replication Controller就杀死几个,如果太少了,Replication Controller会新建几个,和直接创建的pod不同的是,Replication Controller会替换掉那些删除的或者被终止的pod,不管删除的原因是什么。**注意:**K8s 计划逐步废弃RC,而改用功能更加丰富的RS和Deployments。RS和Deployments参见Kubernetes(k8s)中文文档 名词解释:ReplicaSets_Kubernetes中文社区。
服务
Kubernete Service 是一个定义了一组Pod的策略的抽象,我们也有时候叫做宏观服务。这些被服务标记的Pod都是通过label Selector决定的。
总体来看,R版本的Magnum更多表现在修复bug上,进一步完善现有功能,其中最大的亮点就是稳定性的更新和加强对k8s特性的支持,而这些离不开CERN、NEC、九州云、红帽、富士康等众多公司的积极参与。相信在下一个版本中,Magnum将会呈现更完美的自己。
搞个大事件
值此Rocky版本发布之际,九州云将于10月10日上午10:00,正式线上同步发布全球首款基于 Rocky版本第七代全新开源云管理平台 ——Animbus® 7.0系列产品。
10月10日10点,诚邀业界同仁一同品鉴。