初步了解OpenStack(T版)

一、概述

一、云计算服务类型

laaS(基础架构即服务):
1、提供底层IT基础设施服务,包括处理能力、存储空间、网络资源等。
2、面向对象一般是IT管理人员。
PaaS(平台即服务):
1、把安装好开发环境的系统平台作为一种服务通过互联网提供给用户。
2、面向对象—般是开发人员。
Saas (软件即服务):
1、直接通过互联网为用户提供软件和应用程序等服务。
2、面向对象一般是普通用户。

二、商业云分类

公有云:所有人都能用。
私有云:只为企业内部使用,服务器是托管给阿里云组织维护。
专有云::也是为企业内部所使用,使用的服务器是客户自己的服务器。
混合云:例如银行。

三、OpenStack服务

服务 项目名称 描述
Compute(计算服务) Nova 负责实例生命周期的管理,计算资源的单位。对Hypervisor进行屏蔽,支持多种虚拟化技术(红帽默认为KVM),支持横向扩展
Network(网络服务) Neutron 负责虚拟网络的管理,为实例创建网络的拓扑结构。是面向租户的网络管理,可以自己定义自己的网络,各个租户之间互不影响
ldentity(身份认证服务) Keystone 类似于LDAP服务,对用户、租户和角色、服务进行认证与授权,且支持多认证机制
Dashboard(控制面板服务) Horizon 提供一个Web管理界面,与OpenStack底层服务进行交互
Image Service(镜像服务) Glance 负责为运行实例提供持久的块存储设备,可进行方便的扩展,按需付费,支持多种后端存储
Block Storage(块存储服务) Cinder 负责为运行实例提供持久的块存储设备(磁盘持久化),可进行方便的扩展,按需付费,支持多种后端存储
Object Storage(对象存储服务) Swift 为OpenStack提供基于云的弹性存储,支持集群无单点故障(镜像、快照)
Telemetry(计量服务) Ceilometer 用于度量、监控和控制数据资源的集中来源,为OpenStack用户提供记账途径

1、每个服务是一个项目
2、项目之间是隔离的,大多数通过API接口进行数据交互传输
3、OpenStack核心是实例(虚拟机),大部分核心功能围绕实例进行的
4、阿里云中核心是云主机(ECS)

四、OpenStack的优势

解耦
遵守同一接口约束
冗余
数据传输,会有持久化缓存,知道数据传输完,才会将任务删除,并取消持久化
兼容性
OpenStack兼容其他公有云(OpenStack的云),方便用户进行数据迁移
可扩展性
模块化设计,可以通过横向扩展,增加节点、添加资源
灵活性
根据自己的需要建立相应基础设施(iaas)、增加集群规模
顺序保证
消息队列,按特定的顺序来处理
缓冲
通过将数据转换为数据流,进行输出或输入

五、OpenStack分层思路

1、OpenStack分为多个独立的项目(按照功能)。
2、每个项目中,也划分了不同的子系统。
3、子系统之间是通过消息代理通讯(统一的规范)。
4、在不同项目之间通讯(统一),公共API。
以项目职能划分:全局、核心、辅助

六、OpenStack组件通信关系

基于AMQF协议的通信
用于每个项目内部各个组件之间的通信。
基于SQL的通信
用于各个项目内部的通信。(openstack 核心组件/服务很多都是由python开发的)
基于HTTP协议进行通信
通过各项目的API建立的通信关系,API都是RESTful Web APl。
1)项目之间通讯,比如nova和keystone之间通讯http,而http在openstack中是借助apache来实现的
2)restful :通讯协议的一种规范
3.1)项目之间点到点的通讯是借助不同项目暴露出来的公共api接口进行的
3.2)通讯的过程:借助了AMQP进行通讯
4)URL形式
通过Native API实现通信
OpenStack各组件和第三方软硬件之间的通信。

七、OpenStack物理架构

在这里插入图片描述
网络节点:网络节点通常需要3个网络端口,分别用于与控制节点进行通信、与除控制节点之外的计算和存储节点之间的通信、外部的虚拟机与相应网络之间的通信。
1、提供者网络:为内部网络提供插件、代理以及功能模块支持。
2、自服务网络:用于连接外部。

二、环境部署

主机名 内存 硬盘 处理器 VM NAT
ct 8G 300G 4 192.168.211.10 192.168.238.140
c1 8G 300G 4 192.168.211.20 192.168.238.141
c2 8G 300G 4 192.168.211.30 192.168.238.142

一、基本配置

#ct、c1、c2
[root@localhost ~]# hostnamectl set-hostname ct
[root@localhost ~]# su
[root@ct ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
IPV4_ROUTE_METRIC=90 #添加优先级:nat网卡优先 
[root@ct ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens34
#GATEWAY=192.168.211.1 #将网关注释
[root@ct ~]# systemctl restart network

在这里插入图片描述

[root@ct ~]# vi /etc/hosts

在这里插入图片描述

#免交互(三台)
[root@ct ~]# ssh-keygen -t rsa

在这里插入图片描述

[root@ct ~]# ssh-copy-id ct
[root@ct ~]# ssh-copy-id c1
[root@ct ~]# ssh-copy-id c2
#安装依赖包(三台)
[root@ct ~]# yum -y install net-tools bash-completion vim gcc gcc-c++ make pcre pcre-devel expat-devel cmake bzip2 lrzsz
[root@ct ~]# yum -y install centos-release-openstack-train python-openstackclient openstack-selinux openstack-utils #安装OpenStack组件,执行两遍
#时间同步
ct 同步阿里时钟服务器
c1/c2 同步 ct
##ct
[root@ct ~]# yum -y install chrony
[root@ct ~]# vim /etc/chrony.conf
#配置阿里云时钟服务器源
第7行 server ntp6.aliyun.com iburst
#允许192.168.211.0/24网段的主机来同步时钟服务
第8行 allow 192.168.211.0/24

在这里插入图片描述

[root@ct ~]# chronyc sources #查询时间同步信息

在这里插入图片描述

##c1/c2
[root@c1 ~]# vim /etc/chrony.conf
#配置阿里云时钟服务器源
第7行 server ct iburst 

在这里插入图片描述

[root@c1 ~]# systemctl restart chronyd.service #重启时间同步服务器
[root@c1 ~]# systemctl enable chronyd.service #设置开机自启
[root@c1 ~]# chronyc sources #查询时间同步信息

在这里插入图片描述

#设置查询时间同步信息并输出到日志
[root@c1 ~]# crontab -e
[root@c1 ~]# crontab -l
*/2 * * * * /usr/bin/chronyc sources >>/var/log/chronyc.log

二、配置服务(控制节点)

一、安装、配置MariaDB

#ct
[root@ct ~]# yum -y install mariadb \ #轻量级mysql
mariadb-server \ mysql服务端
python2-PyMySQL #对接数据库连接的条件
[root@ct ~]# yum -y install libibverbs #函数库
[root@ct ~]# vim /etc/my.cnf.d/openstack.cnf #创建并设置用于OpenStack连接的文件

在这里插入图片描述

[mysqld]
bind-address = 192.168.211.10 #监听本地地址
default-storage-engine = innodb #默认使用的存储引擎
innodb_file_per_table = on #开启表空间
max_connections = 4096 #最大连接
collation-server = utf8_general_ci #设置字符集
character-set-server = utf8 #扩展字符集
[root@ct ~]# systemctl enable mariadb #设置开机自启
[root@ct ~]# systemctl start mariadb #开启服务
[root@ct ~]# mysql_secure_installation #执行安全配置脚本

在这里插入图片描述
在这里插入图片描述

二、安装rabbitmq

#所有创建虚拟机的指令,控制端都会发送到rabbitmq,node节点监听rabbitmq
[root@ct ~]# yum -y install rabbitmq-server #安装
[root@ct ~]# systemctl enable rabbitmq-server.service #开机自启
[root@ct ~]# systemctl start rabbitmq-server.service #开启服务

#创建消息队列用户,用于controler和 计算节点连接rabbitmq的认证(关联)
[root@ct ~]# rabbitmqctl add_user openstack RABBIT_PASS
#配置openstack用户的操作权限(正则,配置读写权限)
[root@ct ~]# rabbitmqctl set_permissions openstack ".*" ".*" ".*"

在这里插入图片描述
在这里插入图片描述

[root@ct ~]# rabbitmq-plugins enable rabbitmq_management #开启rabbitmq的web管理界面的插件,端口为15672

在这里插入图片描述

[root@ct ~]# ss -natp | grep 5672 #检查端口(25672 5672 15672

在这里插入图片描述

三、访问:192.168.238.140:15672

在这里插入图片描述
在这里插入图片描述

四、安装memcached

[root@ct ~]# yum install -y memcached python-memcached
ps:1、安装memcached是用于存储session信息;服务身份验证机制(keystone)使用Memcached来缓存令牌 在登录openstack的dashboard时,会产生一些session信息,这些session信息会存放到memcached中。
2、python-*模块在OpenStack中起到连接数据库的作用

[root@ct ~]# vim /etc/sysconfig/memcached #修改Memcached配置文件
[root@ct ~]# cat /etc/sysconfig/memcached
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS="-l 127.0.0.1,::1,ct" #添加ct

[root@ct ~]# systemctl enable memcached #开机自启
[root@ct ~]# systemctl start memcached #开启服务

在这里插入图片描述

五、安装etcd

[root@ct ~]# yum install -y etcd
[root@ct ~]# vim /etc/etcd/etcd.conf
[root@ct ~]# grep -v "^#" /etc/etcd/etcd.conf 
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
#默认数据目录
ETCD_LISTEN_PEER_URLS="http://192.168.211.10:2380"
#监听其他etcd member的url(2380端口,集群之间通讯,域名为无效值)
ETCD_LISTEN_CLIENT_URLS="http://192.168.211.10:2379"
#对外提供服务的地址(2379端口,集群内部的通讯端口)
ETCD_NAME="ct"
#集群中节点标识(名称)
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.211.10:2380"
#该节点成员的URL地址,2380端口:用于集群之间通讯。
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.211.10:2379"
#客户端的地址
ETCD_INITIAL_CLUSTER="ct=http://192.168.211.10:2380"
#etcd在集群中的定位
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"
#集群唯一标识
ETCD_INITIAL_CLUSTER_STATE="new"
#初始集群状态,new为静态
#若为existing,则表示此ETCD服务将尝试加入已有的集群
#若为DNS,则表示此集群将作为被加入的对
[root@ct ~]# systemctl enable etcd
[root@ct ~]# systemctl start etcd

在这里插入图片描述


版权声明:本文为wuhao930715原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>