openstack

简介: 云操作系统各组件

Openstack

组件介绍

keystone

1.keystone:提供鉴权和浮动目录的(各个组件api的endpoint地址)
两种鉴权方式 pki,uuid

Nova

nova:提供计算资源,提供虚拟机的创建删除等操作
Nova虚拟机创建流程?
1.user发送创建虚拟机请求到nova-api
2.nova-api进行参数解析、记录数据库、转发给novao-conductor
3.nova-conductor将请求信息与scheduler的信息组合,发送给nova-scheduler
4.nova-scheduler接收到数据后,开始筛选主机:filter、权重、随机,将选出合适的主机返还给nova-conductor
5.nova-conductor直接调用该主机对用的nova-compute,要求创建虚拟机
6.nova-compute在数据库中占用资源
7.nova-compute找到neutron创建port
8.nova-compute找到cinder创建disk,并且挂载
9.nova-compute启动虚拟机,glance下载镜像
10.生成虚拟机的xml文件,调用libvirt拉起虚拟机
11.更新数据库

neutron

neutron:提供网络资源的
Neutron分为两大类组件:
1.neutron server:控制节点、多活部署
2.xxx agent:如ovs-agent控制+计算节点多活部署

cinder

cinder:提供块存储资源的,提供卷的挂载删除等操作
Cinder-api:提供服务的入口。控制节点、多活部署。前端通过haporxy负载均衡
Cinder-scheduler:筛选。调度合适的后端存储。控制节点、多活部署。前端通过rabbitMQ进行负载均衡
filter:一种是已经用了最少的胜出。一种是剩下最多的胜出
权重:对应的主机存储胜出最多的胜出
Cinder-Volume:通过不同的dirver对接不同的后端存储。控制+计算节点,多活部署。前端通过rabbitMQ进行负载均衡
cinder创建卷的流程?
1.用户下发创建卷的请求到Cinder-api
2.Cinder-api接收后,向Keystone进行身份认证,通过后,生成卷的ID
3.将该创建卷的消息投放到相对应的Scheduler的队列当中
4.Cinder-Scheduler在队列中去读取创建卷的信息,根据调度策略和权重计算策略筛选出合适的后端存储
5.将该消息投递到相对应的Cinder-Volume队列中
6.Volume从自己的队列当中读取该消息,调用dirver创建卷,然后更新数据库
7.diver发送对应的创建卷的请求到存储,让存储完成创建卷的操作

glance

glance:提供镜像资源的,可以对接swift,本地磁盘,OBS,提供镜像的上传下载删除等操作
api:对外提供服务的入口,有web/cli的方式
1.能够对消息进行认证鉴权处理、并且调用其他组件处理请求:image store
glance registry(glance的核心):操作数据库
DB:mySQL
image store(镜像仓库):Swfit/S3/ceph/本地存储。华为只支持Swift/本地存储/OBS(公有云对象存储服务)
Glance缓存:
1.用户是不可见且不知道使用的是本地还是后端的镜像。
2.可配置:缓存的开关、大小、周期
目的:解决因扩展节点带来的镜像服务性能问题(上传和下载)
原理:由Glance api提供缓存的位置,缓存的位置:计算节点、glance api(官网是这种)
Glance上传:
1.请求者通过web/cli发起上传请求,glance api接收到请求
2.glance api让glance
Registry到DB中记录需要存放的位置
3.  记录完成后,glance api直接上传镜像到image store的后端存储中
Glance下载:
1.请求者通过web/cli发起上传请求,glance api接收到请求
2.glance api找到glance缓存是是否有cache
3.如果没有cache,找到glance registry查找DB,并确认存放位置后,返还给glance api
4.glance api到image
store中下载镜像给请求者

swift

swift:提供对象存储的,在华为的op里仅仅用来给 glance来存放镜像

heat

heat:自动编排服务
流程:创建好一个模板,在这个模板里写好脚本交给heat api 执行,heat api通过MQ将其交给 heat engin执行,heat engin将这个模板解析成具体的时间交由各个组件执行

ceilometer

ceilometer:提供监控计量服务的
通过各种agent来收集信息

服务器虚拟化和私有云的对比

结构上,应用场景,服务对象,实现方式 ,兼容性,产品优势

openstack的定位优势

华为op底层对接了各种计算、存储、网络等资源,它是云操作系统软件,是一种经过商业加固的Openstack,可以对资源进行统一管理与调配,未来还可以接入更多的资源。
部署:原生的OP部署复杂难度大门槛高,华为的OP部署相对简单且规划方便
稳定性:原生的OP一年更新2次,但是每个版本都可能存在不稳定因素,而华为针对M版进行了大量的改进与改良,修复了许多BUG,打了很多补丁,很大程度上提升了稳定与安全性
高可靠:原生OP的组件默认都不是冗余部署的,华为的私有云控制节点至少都是3个节点冗余部署
健康检查:原生OP的健康检查功能少,华为的OP检查项目多、功能多样,可以提供报表、告警、硬件状态信息等数据
服务:原生的OP没有服务提供,运维门槛高难度大,华为的OP有官方的维护,需要服务可以按需求购买添加,售后有保障
页面:原生的OP页面比较简陋且单一,华为OP页面华丽美观,更适合中国人的使用习惯版本:华为的OP是基于M版(2016-04)进行改良,版本架构较老,对新功能新特性支持程度较低。

openstack网络平面规划

internal_base:openstack内部组件、子组件通信平面,安全等级最高。
external_OM:openstack内部组件与FSM\VRM\service OM通信平面,安全等级次之。
external_api:openstack内部组件与外部管理员、租户通信平面,安全等级最低。
tunnel_bearing:vxlan的承载平面,任意节点都有。
storage_data:管理存储和业务存储走的平面,控制流走external_om平面。 
pubilc server:云服务后端网络,提供公共组件后端通信的网络,如lvs nginx  ntp
dmz server:云服务前端网络,提供各个服务的console,比如登录SC
heat bate:云心跳平面,监控各个组件的心跳,对接eshige
bmc_base:用来和裸金属服务器的IPMI接口三层互通,对主机进行上下电操作。

privsion:用来给裸金属pxe安装系统的平面,操作系统镜像包的下载及安装。前身是internal_base平面,部署完成之后Privsion平面会切换成租户网络平面。

云硬盘和本地磁盘对比

定义,性能,vdc配额,生命周期,高级特性,可靠,场景
云硬盘的类型,模式
ssi锁机制,共享运营爬满
云硬盘高级特性:快照,升降配,备份,高可用,迁移

私有云项目规划

调研,评估,规划,实施(安装流程),测试,交付

云基础概念

Domain:域,keystone 中资源(project、user、group)的持有者 region 在 keystone 里基本代表一个数据中心 
Service:服务,一组相关功能的集合,比如计算服务、网络服务、镜像服务、存储服 务等。 
Endpoint: 必须和一个服务关联,代表这个服务的访问地址,一般一个服务需要提供 三种类型的访问地址:public、internal、admin 以阿里云为利 : Aliyun.com ---domian 地域(华北 1) ---region 可用区(可用区 B ) ---az Identity.aliyun.com
 一个 domain 中可以包含 N 多个 region,一个 region 可以包含 N 多个可用区(AZ), 一个 AZ 中包含 N 多个服务,这些服务组成向上组成为 VDC,VPC 等资源。一个 keystone 作用于一个 domain。
相关文章
|
存储 网络协议 Linux
如何安装OpenStack?
【8月更文挑战第21天】
1853 1
|
5月前
|
Kubernetes 算法 调度
【赵渝强老师】Kubernetes中Pod的调度策略
Kubernetes中Pod的调度是指将Pod分配到最合适的Node节点上运行。默认情况下,调度器根据资源需求和均衡策略自动选择节点。在特殊场景下,用户可通过nodeName和nodeSelector字段指定调度约束。本文详细介绍了Pod的创建过程及调度机制,并通过示例演示了如何使用nodeName和nodeSelector实现自定义调度策略。
257 1
|
机器学习/深度学习 存储 虚拟化
OpenStack学习教程
【8月更文挑战第19天】
830 4
|
存储 Ubuntu 持续交付
openstack安装配置
【8月更文挑战第5天】
1008 7
|
Kubernetes Ubuntu Docker
从0开始搞K8S:使用Ubuntu进行安装(环境安装)
通过上述步骤,你已经在Ubuntu上成功搭建了一个基本的Kubernetes单节点集群。这只是开始,Kubernetes的世界广阔且深邃,接下来你可以尝试部署应用、了解Kubernetes的高级概念如Services、Deployments、Ingress等,以及探索如何利用Helm等工具进行应用管理,逐步提升你的Kubernetes技能树。记住,实践是最好的老师,不断实验与学习,你将逐渐掌握这一强大的容器编排技术。
2276 1
|
Kubernetes 安全 API
debian11 安装 k8s,containerd ,阿里云镜像(已成功)
在准备 Kubernetes 集群环境中,确保每台机器至少有 2GB RAM,推荐 4GB,需连接网络。需3台机器,1台作为 Master,2台作为 Worker。安装 `sudo`,设置各节点主机名为 k8s-master、k8s-node1、k8s-node2,并更新 `/etc/hosts`。升级系统,接着安装并更新 containerd 至 v1.7,配置 `containerd` 并启用。
1431 0
|
网络协议 C++ Docker
Docker pull拉取镜像报错“Error response from daemon: Get "https://registry-1.docker.io/v2”解决办法
Docker pull拉取镜像报错“Error response from daemon: Get "https://registry-1.docker.io/v2”解决办法
64485 2
|
安全 关系型数据库 Java
低代码平台深度剖析
低代码平台深度剖析
520 0
|
前端开发 物联网 Java
阿里云物联网平台设备分发实战
物联网平台通过设备分发实现设备跨地域、跨实例或跨账号的分发。分发后,物联网平台下发新的连接地址给设备,设备本地固化收到信息之后,直接连接新的地址,免去二次烧录设备信息。本文主要演示指定地域的分发方式,设备完成分发后,通过向认证中心请求新的连接地址,重新建立连接。
34375 4
阿里云物联网平台设备分发实战