Centos7 OpenStack的部署之基础环境的构建

云计算的概述

云计算的定义
何为云计算?我们可以理解为是一种想用就用、按量付费的一种模式,只要采用这一种的模式都可以叫做云计算

云计算的分类
按设计的架构分类:

  • 私有云(仅供内部使用,针对性设计,兼容性高,安全性高)
  • 公有云(容量大,成本低,弹性收缩,如:阿里云、腾讯云)
  • 混合云(私有云和公有云的结合)

按供给的方式分类:

  • IaaS 基础设施即服务
  • PaaS 平台即服务
  • SaaS 软件即服务

只要我们说到云计算,就可以联想到OpenStack,OpenStack是云计算中的一个云平台管理工具,比较热门

OpenStack的概述

OpenStack的定义
OpenStack 是一个美国国家航天局和RackSpace 合作研发的,以Apache 许可证授权,并且是一个自由软件。
Openstack是一个云平台管理的项目,它不是一个软件。这个项目由几个主要的组件组合起来完成一些具体的工作。
OpenStack 通过一个通过web 界面提供资源管理,通过一个仪表盘管理整个数据中心的计算存储资源等

OpenStack既然是一个开源的云平台项目,它的主要任务是给用户提供IaaS服务。

OpenStack的构成

  • 控制节点(负责对其余节点的控制,包含虚拟机的删除、创建、迁移、存储分配等等)
  • 计算节点(负责虚拟机的运行)
  • 网络节点(负责内网与外网的之间的通信)
  • 存储节点(负责虚拟机的存储管理)

一般情况下,可以将这个四个节点安装在一台机器上,称做单机部署

OpenStack组件的分类
Nova
核心组件,主要用于计算,负责创建、销毁、调度云主机
Glance
镜像服务,为云主机提供镜像服务
Swift
对象存储
Cinder
块存储,为云主机附加云盘,增加存储空间
Neutron
提供网络服务
Horizon
提供web界面的形式操作平台,方便用户交互,可称为Dashboard
Keystone
认证服务,所有组件交互的中心
Heat
编排、自动化部署应用工具
Centimeter
监控、对物理资源以及虚拟资源的监控,并记录这一些记录,对数据进行分析,在一定条件下触发相应的动作
Trove
数据库服务
Sahara
数据处理

OpenStack四个节点分别对应的组件

节点 组件名称
控制节点(controller) Keystone,Glance,Nova,Neutron,Horizon
计算节点(compute) Nova,Neutron
网络节点(neutron) Neutron
存储节点(block) Cinder,Swift

控制节点controller还包含了:
mysql:为各个服务提供数据存储
消息队列:包括Qpid、RabbitMq 保证组件之间的沟通不会出现数据损坏以及丢失
memcahce:高速缓存系统

OpenStack的网络类型

  • 管理网络(用于组件和组件之间的沟通)
  • 实例网络(用于虚拟机和虚拟机之间的沟通)
  • 外部网络(访问外部网络所需,外部网络都是通过neutron代理转发给虚拟机的)

基础环境的构建

测试环境

主机 IP地址
controller ens33:192.168.1.10 ens37:192.168.2.10
compute ens33:192.168.1.20 ens37:192.168.2.20

本次实验采用双机双网卡
ens33 为VMnet1仅主机模式
ens37 为VMnet8 Nat模式

初始化环境

以下操作两个节点都要执行

修改对应节点上的主机名称

[root@localhost ~]# hostnamectl set-hostname controller
[root@localhost ~]# hostnamectl set-hostname compute 

修改本地hosts文件

[root@controller ~]# vi /etc/hosts 
192.168.1.10    controller
192.168.1.20    compute

关闭Firewallsd防火墙、IPtable防火墙、selinux、网卡守护进程

[root@controller ~]# systemctl stop firewalld 
[root@controller ~]# systemctl disable firewalld 
[root@controller ~]# iptables -F
[root@controller ~]# iptables -X
[root@controller ~]# iptables -Z
[root@controller ~]# /usr/sbin/iptables-save 
[root@controller ~]# vi /etc/selinux/config 
SELINUX=disabled
[root@controller ~]# setenforce 0
[root@controller ~]# systemctl stop NetworkManager 
[root@controller ~]# systemctl disable NetworkManager 

配置本地yum源

安装epel源,扩展本地的yum仓库
[root@controller ~]# rpm -ivh http://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
安装OpenStack仓库
[root@controller ~]# yum install -y centos-release-openstack-queens.noarch 
[root@controller ~]# yum clean all && yum makecache 

注:如果这里提示OpenStack的yum源报错,添加如下yum源信息即可
[centos-ceph-luminous]
name=CentOS-$releaserver-Ceph Luminous
gpgcheck=0
pority=2
enabled=1
baseurl= http://mirrors.ustc.edu.cn/ceph/rpm-mimic/el7/x86_64/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Storage

[centos-openstack-queens]
Name=CentOS-7-OpenStack-queens
gpgcheck=0
pority=1
baseurl= http://mirrors.ustc.edu.cn/centos/7/cloud/x86_64/openstack-queens/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Cloud 
exclude=sip,PYQt4

安装OpenStack相关软件包

安装 yum-plugin-priorities 包,防止高优先级软件被低优先级软件覆盖 
[root@controller ~]# yum install -y yum-plugin-priorities

安装OpenStack客户端 
[root@controller ~]# yum install -y python-openstackclient

安装OpenStack selinux管理包
[root@controller ~]# yum install -y openstack-selinux 

时间同步的配置

controller为时间同步服务器,compute为客户端

controller的配置
[root@controller ~]# yum install -y chrony 
[root@controller ~]# vi /etc/chrony.conf 
注释掉以上server,然后添加一个新的
#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 controller iburst
allow 192.168.1.0/24 
local stratum 10
[root@controller ~]# systemctl restart chronyd 
[root@controller ~]# systemctl enable chronyd 
[root@controller ~]# chronyc sources 

compute客户端的配置
[root@compute ~]# yum install -y chrony 
[root@compute ~]# vi /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 controller iburst 
[root@compute ~]# systemctl restart chronyd 
[root@compute ~]# systemctl enable  chronyd 
[root@compute ~]# chronyc sources 
210 Number of sources = 1
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^* controller                   11   6    17    14   +102us[ +130us] +/- 5152us

controller节点的配置

安装mysql数据库

[root@controller ~]# yum -y install mariadb mariadb-server MySQL-python net-tools vim
[root@controller ~]# vi /etc/my.cnf.d/openstack.cnf 
[mysqld]
bind-address = 192.168.1.10   # 监听的IP地址(也可以写0.0.0.0)
default-storage-engine = innodb  # 默认存储引擎[innodb]
innodb_file_per_table       # 使用独享表空间
max_connections = 4096          # 最大连接数是4096 (默认是1024)
collation-server = utf8_general_ci  # 数据库默认校对规则
character-set-server = utf8  # 默认字符集
[root@controller ~]# systemctl start mariadb 
[root@controller ~]# systemctl enable  mariadb 
[root@controller ~]# mysql_secure_installation 

安装RabbitMQ消息服务

[root@controller ~]# yum install -y rabbitmq-server 
[root@controller ~]# systemctl start rabbitmq-server 
[root@controller ~]# systemctl enable rabbitmq-server 

添加openstack用户
[root@controller ~]# rabbitmqctl add_user openstack openstack 
Creating user "openstack"
给openstack用户读写权限
[root@controller ~]# rabbitmqctl set_permissions openstack ".*" ".*" ".*"
Setting permissions for user "openstack" in vhost "/"
开启rabbitmq WEB页面插件
[root@controller ~]# rabbitmq-plugins enable rabbitmq_management
这样我们就可以输入http://本地IP地址:15672访问了

浏览器访问测试
用户名和密码都是guest
Centos7 OpenStack的部署之基础环境的构建_第1张图片

安装memcahce服务

[root@controller ~]# yum install -y memcached python-memcached 
[root@controller ~]# vi /etc/sysconfig/memcached 
OPTIONS="-l 192.168.1.10,::1,controller"
[root@controller ~]# systemctl start memcached 
[root@controller ~]# systemctl enable memcached 

至此,以上就是OpenStack的基础环境的构建

你可能感兴趣的:(linux,openstack)