您的位置:首页 > 运维架构 > 网站架构

Mirantis Cloud Platform之MCP架构

2018-01-11 11:00 701 查看
源于官方文档 根据自己理解翻译而来。

MIRANTIS云平台是一个综合的私有云软件栈,具有可靠、弹性、可扩展的特点,包括openstack(裸机和虚拟机),kubernetes(容器),ceph(块存储和对象存储),opencontrail(面向openstack集群)和Calico(面向K8s) SDN。

架构

部署、生命周期管理(LCM)

设计要点

组件描述
DriveTrainMCP生命周期管理(LCM)系统的总称。通过一套CI/CD管道实现持续集成、持续测试以及持续交付,它主要包括以下生命周期管理工具:(1)SaltStack:一个灵活的、可扩展的部署和配置管理工具,用于MCP集群生命周期管理;(2)Reclass:节点分类器,配合SaltStack,提供节点的配置管理;(3)Gerrit:提供 Git 库和代码检视管理系统,保存源代码、SaltStack 程序(formulas)、Reclass 模型(models);(4)Jenkins:任务自动化工具,它检测提交到 Gerrit 的针对 MCP 集群配置的变化,然后通过执行一系列 jobs,将相应的 SaltStack 程序和Reclass 模型应用到 MCP 集群,实现MCP集群升级和更新时的持续集成和持续交付功能;(5)Repos:MCP集群部署和运行所需的软件库。
MCP clusters使用DriveTrain可以部署和管理多个不同类型的MCP集群。一个MCP集群可以是一个openstack环境或者一个Kubernetes集群。不同集群可以在一个环境中共存,通过同一组监控和生命周期管理组件控制。
DevOps 门户为云运营商提供一个接入点,使其能访问通过DriveTrain和StackLight提供的功能。
日志监控告警以及StackLight对应用关键数据进行收集、分析和可视化,并通过一个配置的通信系统进行告警和提示,如email。
Metal-as-a-Service (MaaS)使得管理物理服务器如同虚拟机一样简单。
Keepalived和HAProxy保证了高可用性Keepalived是一个提供虚拟IP地址的路由软件,HAProxy是一个为网络连接提供负载平衡的软件。
Mirantis OpenContrail(可选)可作为MCP中的一个网络虚拟化解决方案
Ceph 集群(可选)提供openstack环境的分布式对象存储

自动化部署

MCP使用自动化工具SaltStack加上Reclass和Cookiecutter工具来部署MCP集群。

SaltStack and Reclass模型

在MCP中。每一个准则(配方 formula)定义一个MCP集群的组件,如MySQL,RabbitMQ,openstack服务等。SaltStack用于执行每个配方。使得云运营商可以在一个集群中结合多个所需组件,从而实现服务之间没有相互干扰以及可在多个场景中重用。

Reclass是一个外部节点分类器(ENC),使得云运营商可以在MCP集群内配置中结合多个classes来管理节点,可通过tags或者categories来查看classes。

三类classes:



Service classSystem classCluster class
定义MCP的组件,如RabbitMQ, OpenStack services, MySQL等,服务类在SaltStack中以.deb包的格式提供在Salt主节点 SaltStack配方由执行部分(定义需要部署所需命令)和元数据(参数如IP地址,域名等)组成。服务类继承来自系统和集群类的元数据。定义节点,如计算节点,控制节点,以及这些节点上所需的组件。系统类是服务类以某种方式集成在一起从而提供可用系统的集合。系统类以git库的形式提供,必须通过clone到SaltStack主节点来使用,系统类从集群类继承元数据。集群类定义集群,如demo或者生产集群。系统类根据部署需求结合成集群类。一组预先定义好的环境参数(定义文件)在git库中提供,需要clone到主节点使用。另外,可以通过Cookiecutter从模板来生成集群类。这种方法显著加快了元数据预存速度

SaltStack库结构

库结构允许工程师存储和部署多个MCP集群定义文件,这有益于多站点(multi-site)部署以及多云(multi-cloud)部署,使得在系统层和服务层使用相同元数据的不同的云类型共存。重用系统和服务级别的元数据可以防止数据随着时间的推移而退化,并提供了一致性和按需定制系统和服务的能力。



部署模板

Cookiecutter 模板可简化部署过程

Cookiecutter 用于创建project模板,然后根据用户指定数据来使用这些模板部署不同类型的MCP集群,一个模板可以是一个demo MCP集群或者一个production MCP集群。

库规划

MCP生命周期管理工具以存储在APT中的源代码和存储在Git库中的配置元数据提供。Salt主节点要求连接APT和Git库,环境中的其他节点只要求连接APT库。

可以直接使用这些库为openstack环境提供互联网连接,但是出于安全考虑,环境不提供互联网连接,需要为API和Git库配置本地库镜像。另一种方法是仅仅在创建APT库镜像的时候为Salt主节点提供到Git库的互联网连接。

本地镜像设计

可以将APT库和Git库镜像以虚拟机的形式与Maas和Salt主节点放置在同一个KVM节点上。如下图:



需要设置本地库镜像,并按库列表中的描述配置APT库。如果环境与网络隔离,name需要配置Git库,并让Salt主节点与该库连接。

Infrastructure node planning

在大型数据中心,往往要求管理流和工作流分离于不同的服务器上。分别称为control plane和data plane。

在MCP中,控制plane位于infrastructure节点上。该节点上运行所有部署要求的组件,生命周期管理以及MCP集群监控。一种特定类型的infrastructure节点称为foundation 节点,提供裸机服务的称为Metal-as-a-Service 。

Infrastructure节点运行MCP集群部署、生命周期管理、监控所需的所有服务。

注意:If you use Open vSwitch Neutron plugin for tenant networking, all networking components run on the infrastructure nodes as virtual machines.

+ infrastructure and foundation node services mapping with Mirantis OpenContrail:



+ infrastructure and foundation node services mapping for tenant networking with Neutron Open vSwitch:



Multi-site and multi-cluster架构

MCP能够使用相同的DriveTrain和infrastructure节点安装配置来管理多个不同的集群。如openstack环境和kubernetes集群。

DriveTrain

DriveTrain包含组件:

+ 生命周期管理工具,实现云管理员修改云环境配置。是CI/CD pipeline的一部分,包含:SaltStack Reclass、

Jenkins、

MCP registry、

Gerrit

+ 运营支撑系统(OSS)工具,支持云平台日常运维,包含:

Cloud Intelligence service (CIS)、

Cloud Health service、

Runbooks

CI/CD pipeline

MCP持续集成(CI)和持续部署(CD)pipeline用于传输MCP集群的配置改变和更新。包含:

Gerrit

存储源代码,SaltStack formulas,以及 Reclass 模型, 并提供代码重现能力。

Jenkins

检测通过Gerrit提交到MCP集群的配置更改,执行jobs,jobs包括运行SaltStack formulas and Reclass models来执行修改。

MCP Registry

存储软件工件,如Docker镜像和Debian packages。

CI/CD pipeline流程如下:



1. 管理员提交一个Reclass model 或者一个 SaltStack formula的修改到Gerrit;

2. Jenkins根据改变模拟环境配置还是产品环境配置,如果是模拟环境,则在提交的时候执行改变,如果是production环境,则在合并改变到配置以后再执行部署job;

3. Jenkins从Gerrit调用要求的 SaltStack formulas和 Reclass models,并从MCP注册表中调用artifacts(工件);

4. SaltStack对云环境应用所做改变。

规划openstack环境

虚拟控制plane(VCP)规划

VCP提供管理云所需的所有服务和组件,当规划一个打在VCP服务的物理或者虚拟服务器,需要考虑openstack环境的大小,冗余,硬件要求等。

为支持高可用和容错性,VCP至少需要部署在3个物理节点上。

VCP 服务:

PlatformService
OpenStackIdentity service (Keystone)、 Image service (Glance)、 Compute service (Nova)、 Networking service (Neutron OVS or OpenContrail plugin)、 Dashboard (Horizon)、 (可选)Block Storage service (Cinder)
Bare-metal provisioningMaaS
Configuration management service
StorageCeph: Ceph monitors、 RadosGW
NetworkingOpenContrail: Control Config DB、 Config、 Analytics、 DB
Back-end servicesProxy (NGINX)、 GlusterFS、 RabbitMQ、 MySQL/Galera
(可选)Logging, Metering, and Alerting (LMA)StackLight

Virtual control plane requirements

可运行500个virtual实例的最小化配置要求:

组件节点数vCPU虚拟内存(GB)虚拟磁盘(GB)vNICsScale
RabbitMQ348502水平扩展或者垂直扩展均可能降低性能
MySQL348802支持水平或者垂直扩展,水平扩展限制在5以内
OpenContrail Controllers3416502用于Cassandra数据库的水平扩展,不包括分析
OpenContrail Analytics34123002支持水平和垂直扩展,Cassandra数据库分析
LMA38163002垂直扩展
openstack dashboard248503水平和垂直
openstack controllers38161004水平: Compute service, Image service, Block Storage service, Identity service, Orchestration service, Hadoop service, 垂直: HAProxy
GlusterFS3243002Vertical
Benchmark124802Vertical

计算节点规划

header 1header 2
overhead 组件附加系统资源开销的组件,如DVR/vRouter和Hypervisor。一般情况,DVR/vRouter使用2 x 10 Gbps NICs的计算节点。
HW组件Compute profile represents the hardware specification that you require for the specified number of virtual machines and the selected flavor. The adjusted version of the compute profile represents the hardware specification after correction to overhead components。
Oversubscription ratio为单个物理资源实体分配的虚拟资源数量。比如对于标准工作流,每一个超线程CPU分配8个vCPU,以及1:1的内存和磁盘比例,例如web应用部署环境。
Flavor definitionsDefines a virtual machine flavor that you plan to use in your deployment. The flavor depends on the workloads that you plan to run. In the spreadsheet, the OpenStack medium virtual machine is provided as an example.
Flavor totalsDefines the final hardware requirements based on specified parameters. Depending on the number and the virtual machine flavor, you get the number of compute nodes (numHosts) with the hardware characteristics.
Resource utilization per compute node定义每个计算节点上的内存、处理、存储资源的利用率. Mirantis 推荐vCPU, vMEM, and vDISK are utilized at least at 50 %, so that your compute nodes are properly balanced. If your calculation results in less than 50 % utilization, adjust the numbers to use the resources more efficiently.

网络规划

支持的技术:

+ OpenContrail

+ Neutron Open vSwitch

Mirantis 推荐使用OpenContrail,仅仅OpenContrail支持的功能:

+ Service chaining

+ MPLS over UDP/GRE with vMX router

+ Multi-site SDN

+ Network analytics

openstack底层网络



OpenContrail传输flow

用户接口和API



SDN



存储



存储规划

所需存储类型:

+ 镜像存储

+ 临时块存储

+ 持久块存储

+ 对象存储

Decapod部署ceph集群

推荐使用ceph生命周期管理工具Decapod



Decapod功能:

+ 远程节点部署ceph

+ 添加或者删除ceph角色

+ 升级、更新、移除集群

+ 管理ceph磁盘分区

Decapod不包含的功能:

+ 为PXE提供一个服务器

+ 管理DHCP

+ 用各种方式管理网络

+ 管理host OS包

+ 部署OS

+ 管理Ceph以外的磁盘分区

Decapod的data models:

+ 用户model

+ 角色model:一个角色有名称属性和权限属性。角色就是命名的权限集合。Decapod有两种权限(API权限和playbook权限)

+ 服务器model:定义ceph所用的服务器

+ 集群model

+ Decapod playbooks

Supported Ceph packages

镜像存储规划

openstack使用Glance提供镜像存储服务,MCP支持的Glance后端:

+ Ceph集群

+ GlusterFS

+ OpenStack Object Storage (Swift)

块存储规划

openstack Cinder,MCP产品支持的cinder后端:

+ Cinder drivers

+ Ceph cluster

对象存储规划

MCP对象存储包括:

+ Ceph

+ Swift(适用于多租户、多区域、Amazon S3)

日志,计量,告警(LMA)规划

LMA工具链:StackLight

可监控OpenStack, OpenContrail, Kubernetes, 和Ceph

StackLight随着MCP一起发布,并自动安装,通过部署一个支持的Reclass模型来激活,支持的Reclass模型通过Cookiecutter项目来创建,Cookiecutter包括的Reclass模型模板如下:

+ 针对标准Kubernetes control plane: Kubernetes_mk

+ 针对使用Contrail SDN的openstack control plane: Openstack_mk_contrail

+ 针对使用Open vSwitch networking的openstack control plane: Openstack_mk_ovs

StackLight组件包括:

+ Log Collector

+ Local Metric Collector

+ Remote Metric Collector

+ Aggregator

+ collectd

+ influxdb

+ Grafana

+ elasticsearch

+ kibana

+ sensu

+ redis

+ rabbitMQ

+ Uchiwa

+ Nagios (可选)

+ Horizon

StackLight工作流:



StackLight Log Collector:



StackLight Metric Collector:



StackLight进一步可查看官网
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mirantis openstack