热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MirantisCloudPlatform之MCP架构

https:blog.csdn.netASSaSSINangJIEarticledetails79031751源于官方文档根据自己理解翻译而来。MIRANTIS云平台是一个综合的

https://blog.csdn.net/ASSaSSINangJIE/article/details/79031751

源于官方文档 根据自己理解翻译而来。
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:
image

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)部署,使得在系统层和服务层使用相同元数据的不同的云类型共存。重用系统和服务级别的元数据可以防止数据随着时间的推移而退化,并提供了一致性和按需定制系统和服务的能力。
image

部署模板

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节点上。如下图:
image
需要设置本地库镜像,并按库列表中的描述配置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:
image
+ infrastructure and foundation node services mapping for tenant networking with Neutron Open vSwitch:
image

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流程如下:
image
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底层网络:
image

OpenContrail传输flow

用户接口和API
image

SDN
image

存储
image

存储规划

所需存储类型:
+ 镜像存储
+ 临时块存储
+ 持久块存储
+ 对象存储

Decapod部署ceph集群

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

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工作流

StackLight Log Collector:
image

StackLight Metric Collector:
image

StackLight进一步可查看官网


推荐阅读
  • 黄东旭: 关于基础软件产品价值的思考
    黄东旭:关于基础软件产品价值的思考-好久没写东西了,正好趁着春节的节后综合症发作写写文章热身一下,记得前几年偶尔会写一些关于TiDB产品功能解读的文章,TiDB5.0发了那么长时间 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • 本文介绍了OpenStack的逻辑概念以及其构成简介,包括了软件开源项目、基础设施资源管理平台、三大核心组件等内容。同时还介绍了Horizon(UI模块)等相关信息。 ... [详细]
  • 像跟踪分布式服务调用那样跟踪Go函数调用链 | Gopher Daily (2020.12.07) ʕ◔ϖ◔ʔ
    每日一谚:“Acacheisjustamemoryleakyouhaven’tmetyet.”—Mr.RogersGo技术专栏“改善Go语⾔编程质量的50个有效实践” ... [详细]
  • k8s+springboot+Eureka如何平滑上下线服务
    k8s+springboot+Eureka如何平滑上下线服务目录服务平滑上下线-k8s版本目录“上篇介绍了springboot+Euraka服务平滑上下线的方式,有部分小伙伴反馈k ... [详细]
  • 问题描述:域名已经备案,我全部都有,也在后台配置了,但是手机预览,还是请求失败,PC端是可以请求 ... [详细]
  • Kubernetes(k8s)基础简介
    Kubernetes(k8s)基础简介目录一、Kubernetes概述(一)、Kubernetes是什么(二& ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • Harmony 与 Game Space 达成合作,在 Shard1 上扩展 Web3 游戏
    旧金山20 ... [详细]
  • 知识图谱表示概念:知识图谱是由一些相互连接的实体和他们的属性构成的。换句话说,知识图谱是由一条条知识组成,每条知识表示为一个SPO三元组(Subject-Predicate-Obj ... [详细]
  • docker+k8s+git+jenkins
    docker+k8s+git+jenkins,Go语言社区,Golang程序员人脉社 ... [详细]
  • k8shelm官网:https:helm.sh点击charts:https:artifacthub.iopackagessearch?sortrelevance&page11.1h ... [详细]
  • kubelet配置cni插件_Kubernetes新近kubectl及CNI漏洞修复,Rancher 2.2.1发布
    今天,Kubernetes发布了一系列补丁版本,修复新近发现的两个安全漏洞CVE-2019-1002101(kubectlcp命令安全漏洞)和CVE-2 ... [详细]
  • “自主设计与实施的故障注入微服务Sidecar,欢迎大佬批评指正!”
    “故障注入Sidecar“——为您的微服务注入故障以验证集群性能!由于导师和实验室师兄们的科研需要,本人专门以Sidecar的模式设计了一个用于错误注入的微服务模块。该模块可以与任 ... [详细]
author-avatar
mobiledu2502908793
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有