openstack简单介绍

openstack概述

OpenStack 是一系列开源工具(或开源项目)的组合,主要使用池化虚拟资源来构建和管理私有云及公共云。其中的八个项目主要负责处理核心云计算服务,包括计算、网络、存储、身份和镜像服务。还有另外十多个可选项目,用户可把它们捆绑打包,用来创建独特、可部署的云架构。

openstack的优势

控制性:·完全开源的平台,提供API接口,方便与第三方技术集成
开源性:.OpenStack兼容其他公有云,方便用户进行数据迁移
可扩展性:.模块化设计,可以通过横向扩展,增加节点、添加资源
灵活性:根据自己的需要建立相应基础设施、增加集群规模
另外,有众多IT大佬企业参与开发openstack项目。

openstack的八个基础服务

服务项目名称描述
compute(计算服务)nova负责将核心组件调度供实例使用,对hypervisor进行屏蔽,支持多种虚拟化技术,支持横向扩展
network(网络服务)neutron负责虚拟网络的管理,为实例创建网络的拓扑结构,是面向租户的网络管理,可自定义网络,各个租户间不影响
identity(身份认证服务)keystone对用户、租户、角色、服务进行认证与授权,支持多认证机制
dashboard(控制面板服务)horizon提供web挂你界面,与openstack底层服务进行交互
image service(镜像服务)glance提供虚拟机镜像模板的注册与管理,将做好的操作系统拷贝为镜像模板,在创建虚拟机时使用,支持多种格式的镜像
block storage(块存储服务)cinder实例的存储设备,可方便地进行扩展,按需付费,支持多种后端存储
object storage(对象存储服务)swift为openstack提供基于云的弹性存储,支持集群无单点故障
telemetry(计量服务)ceilometer用于监控、度量、控制数据资源的集中来源,为openstack用户提供记账途径

opentack架构介绍

概念架构

openstack架构分三种组件:
全局组件:keystone(提供认证)、ceilometer(监控)、horizon(提供ui)
核心组件:nova(调用其他核心组件供给实例)、glance(提供镜像)、swift(提供块存储)、neutron(提供网络)、cinder(提供对象存储)
辅助组件:lronic(提供裸金属)、trove(提供数据库管理服务)、heat(提供数据编排)、sahara(提供数据分析)

概念架构流程:云平台用户在经过Keystone服务认证授权后,通过Horizon或者Reset API模式创建虚拟机服务,创建过程中包括利用Nova服务创建虚拟机实例,虚拟机实例采用Glance提供镜像服务,然后使用Neutron为新建的虚拟机分配IP地址,并将其纳入虚拟网络中,之后在通过Cinder创建的卷为虚拟机挂载存储块,整个过程都在Ceilometer模块资源的监控下,Cinder产生的卷(Volume)和Glance提供的镜像(lmage)可以通过Swift的对象存储机制进行保存。
在这里插入图片描述

逻辑架构

OpenStack包括若干个称为OpenStack服务的独立组件。所有服务均可通过一个公共身份服务进行身份验证。除了那些需要管理权限的命令,每个服务之间均可通过公共API进行交互。

每个OpenStack服务又由若干组件组成。包含多个进程。所有服务至少有一个API进程用于侦听API请求,对这些请求进行倾处理并将它们传送到该服务的其他组件。除认证服务实际工作都是由具体的进程完成的

至于一个服务的进程之间通信,则使用AMQP消息代理。服务的状态存储在数据库中。
在这里插入图片描述

openstack环境搭建

实验环境:
控制节点ct
cpu开启虚拟化
内存8G
硬盘300G
网卡:
NAT网卡:ens33 192.168.218.214
内网网卡:ens37 192.168.126.214

计算节点c1
cpu开启虚拟化
内存8G
硬盘300G
网卡:
NAT网卡:ens33 192.168.218.215
内网网卡:ens37 192.168.126.215

计算节点c2
cpu开启虚拟化
内存8G
硬盘300G
网卡:
NAT网卡:192.168.218.100
内网网卡:192.168.126.100

基础环境配置

所有节点配置:
[root@localhost ~]# yum -y install net-tools bash-completion vim gcc gcc-c++ make pcre pcre-devel expat-devel camke bzip2 lrzsz

#这个要多安装几遍,我安装了两遍才将所有内容安装完成
[root@localhost ~]# yum -y install centos-release-openstack-train python-openstackclient openstack-selinux openstack-utils

控制节点ct配置
[root@localhost ~]# hostnamectl set-hostname ct
[root@localhost ~]# su

在外网网卡中调整优先级,使NAT网卡优先
[root@ct ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
IPV4_ROUTE_METRIC=90
[root@ct ~]# systemctl restart network

三台服务器配置hosts
[root@ct ~]# vim /etc/hosts
192.168.126.214 ct
192.168.126.215 c1
192.168.126.100 c2

之后关闭核心防护

三台服务器做免交互
[root@ct ~]# ssh-keygen -t rsa
[root@ct ~]# ssh-copy-id ct
[root@ct ~]# ssh-copy-id c1
[root@ct ~]# ssh-copy-id c2
然后配置dns
[root@localhost ~]# vim /etc/resolv.conf
nameserver 114.114.114.114

ct同步阿里云时钟服务器,c1 c2同步ct的时间
ct配置
[root@ct ~]# yum -y install chrony
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst	前面几个注释掉
server ntp6.aliyun.com iburst		添加同步阿里云时钟服务器
allow 192.168.126.0/24		允许126网段主机同步本机时间

[root@ct ~]# systemctl enable chronyd
[root@ct ~]# systemctl restart chronyd

c1 c2配置
[root@c1 ~]# vim /etc/chrony.conf
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server ct iburst

[root@c1 ~]# systemctl enable chronyd
[root@c1 ~]# systemctl restart chronyd

每台服务器都设置周期性计划任务每隔两分钟同步一次时间
[root@ct ~]# crontab -e
*/2 * * * * /usr/bin/chronyc sources >> /var/log/chronyc.log

系统环境配置

安装mariadb
[root@ct ~]# yum -y install mariadb mariadb-server python2-PyMySQL	安装数据库和数据库的服务端,这里python2是用于和数据库对接用的
[root@ct ~]# yum -y install libibverbs	安装lib函数库,是openstack的控制端连接mysql所需要的模块

添加MySQL子配置文件,增加如下内容
[root@ct ~]# vim /etc/my.cnf.d/openstack.cnf
[mysqld]
bind-address = 192.168.126.214		#控制节点局域网地址,即本机
default-storage-engine = innodb		#默认引擎
innodb_file_per_table = on			#开启表空间
max_connections = 4096				#最大连接4096
collation-server = utf8_general_ci	#默认字符集
character-set-server = utf8

设置数据库的开机自启并启动数据库服务
[root@ct ~]# systemctl enable mariadb
Created symlink from /etc/systemd/system/mysql.service to /usr/lib/systemd/system/mariadb.service.
Created symlink from /etc/systemd/system/mysqld.service to /usr/lib/systemd/system/mariadb.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
[root@ct ~]# systemctl start mariadb

执行mariadb安全配置脚本
[root@ct ~]# mysql_secure_installation
Enter current password for root (enter for none): 	##回车
OK, successfully used password, moving on...
Set root password? [Y/n] 	Y		##是否需要创建密码

Remove anonymous users? [Y/n] 	Y		##是否需要移除其他用户
 ... Success!
Disallow root login remotely? [Y/n] N 		##是否不允许root用户远程登陆
 ... skipping.
Remove test database and access to it? [Y/n] Y 		##是否删除test测试库
Reload privilege tables now? [Y/n] Y		##是否现在就重载以上的配置

安装rabbitmq,设置开机自启并启动
[root@ct ~]# yum -y install rabbitmq-server
[root@ct ~]# systemctl enable rabbitmq-server.service
Created symlink from /etc/systemd/system/multi-user.target.wants/rabbitmq-server.service to /usr/lib/systemd/system/rabbitmq-server.service.
[root@ct ~]# rabbitmq-server -detached

[root@ct ~]# rabbitmqctl add_user openstack RABBIT_PASS	#创建用于controler和 计算节点连接rabbitmq的认证用户,密码为RABBIT_PASS
[root@ct ~]# rabbitmqctl set_permissions openstack ".*" ".*" ".*"	#配置openstack用户的操作权限
[root@ct ~]# rabbitmq-plugins enable rabbitmq_management		#开启rabbitmq的web管理界面的插件,端口为15672

安装memcached
[root@ct ~]# yum -y install memcached python-memcached
[root@ct ~]# vim /etc/sysconfig/memcached	#修改memcached配置文件
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS="-l 127.0.0.1,::1,ct"


[root@ct ~]# systemctl enable memcached
Created symlink from /etc/systemd/system/multi-user.target.wants/memcached.service to /usr/lib/systemd/system/memcached.service.
[root@ct ~]# systemctl start memcached
[root@ct ~]# netstat -napt |grep 11211
tcp        0      0 192.168.126.214:11211   0.0.0.0:*               LISTEN      35580/memcached     
tcp        0      0 127.0.0.1:11211         0.0.0.0:*               LISTEN      35580/memcached     
tcp6       0      0 ::1:11211               :::*                    LISTEN      35580/memcached     


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

[root@ct ~]# systemctl enable etcd.service
Created symlink from /etc/systemd/system/multi-user.target.wants/etcd.service to /usr/lib/systemd/system/etcd.service.
[root@ct ~]# systemctl start etcd.service
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值