云计算 Openstack介绍及实战部署

Openstack是目前比较流行的一个实现云计算平台的项目,本文通过云计算概述、Openstack简介、Openstack核心模块、Openstack实战部署这几个方面来介绍Openstack。

一、云计算概述

1.1、 云计算是一个资源池,它为我们提供了诸如水、电、煤气一样的基础服务。

1.2 、云计算是一种按使用量付费的模式,这种模式可以快速、高效地提供网络,服务器,存储,应用软件,服务等,我们不必关心如何实现,所以只需投入很少的管理工作,只需和服务供应商进行很少的交互。

1.3、云计算从广义上可以分为如下几种模式:IaaS(基础设施即服务)、PaaS(平台即服务)、SaaS(软件即服务)

1)IaaS:Amazon、阿里云、腾讯云提供的云主机即IaaS,我们拿到的是一台机器,可以自定义操作系统。

2)PaaS:面向开发者,直接给用户提供一个平台来运行用户的程序,早期的idc服务商卖的主机、新浪的sae、阿里云的云数据库等。

3)SaaS:卖的是服务,比如腾讯企业邮箱、印象笔记等

二、Openstack简介

2.1、官网:  

2.2、由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目,用Python语言开发,可以实现私有云或者公有云。

2.3、主要有三个最基础组件:计算服务、网络服务、存储服务。

wKioL1e64NahhzF4AAA5j5ct8m8583.png

2.4、发布版本 ,目前稳定版本为:Mitaka

wKiom1e64jODdHl5AADQrAB9Xao652.png

三、Openstack核心模块

3.1、6个核心服务

1)nova:计算中心,对比阿里云的ESC,支持kvm,xen等虚拟化技术

2)keystone:认证中心

3)neutron:网络服务中心

4)swift:对象存储服务,存储图片,附件等文件,对比腾讯云的COS

5)cinder:块存储服务,对比云盘

6)glance:镜像管理中心

wKioL1e65HXzx1jkAABJtM7zRqc281.png

3.2、其他可选组件

wKiom1e65GLAU_7qAACvvFz7oFo044.png

1)HORIZON:控制面板

2)CEILOMETER:提供监控和数据采集

3)HEAT:自动化部署

4)TROVE:数据库应用服务

5)SAHARA:大数据处理

6)IRONIC:物理机管理服务

7)ZAQAR:消息服务

8)MANILA:文件共享服务

9)DESIGNATE:DNS服务

10)BARBICAN:key管理中心

11)MAGNUM:容器

12)MURANO:应用目录

13)CONGRESS:策略即服务

四、Openstack实战部署

4.1、前期准备

1)实验环境:至少两台机器

2)在RHEL7/CentOS7上安装openstack  libertyl

官方文档: 

3)两台虚拟机,安装centos7系统(准备两个网卡,一个NAT,另一个仅主机)

4)nat网卡设置ip,可以联网,仅主机的网卡只要我们windows可以通就行,主要是用于xshell远程连接

5)关闭selinuxl、关闭iptables

systemctl stop firewalld

systemctl disable firewalld

6)关闭NetworkManager

systemctl stop NetworkManager

systemctl disable NetworkManager

7)CentOS 7配置iptables

参考文档:

8)定义密码,在部署openstack过程中会在多个地方使用到密码,为了方便管理和安全设置,我们需要提前先定义好密码,使用命令mkpasswd -s 0 生成随机字符串

账号    描述    密码  
Database password   Root password for the database   tn1Pi6Ytm  
ADMIN_PASS   Password of user admin   3qiVpzU2x  
CEILOMETER_DBPASS   Database password for the Telemetry service   Czn3bF1hm  
CEILOMETER_PASS   Password of Telemetry service userceilometer   abquh12GU  
CINDER_DBPASS   Database password for the Block Storageservice   O3bwbpoZ3  
CINDER_PASS   Password of Block Storage service usercinder   hf8LX9bow  
DASH_DBPASS   Database password for the dashboard   5qBZxnn1g  
DEMO_PASS   Password of user demo   9TtbgaA1q  
GLANCE_DBPASS   Database password for Image service   Zznky4tP0  
GLANCE_PASS   Password of Image service user glance   Wuyaf4cV6  
HEAT_DBPASS   Database password for the Orchestrationservice   b7Fk5wjLg  
HEAT_DOMAIN_PASS   Password of Orchestration domain   7Gotb3eoH  
HEAT_PASS   Password of Orchestration service userheat   eqQ2jLgz0  
KEYSTONE_DBPASS   Database password of Identity service   f6zx0gURv  
NEUTRON_DBPASS   Database password for the Networking service     quidyOC50  
NEUTRON_PASS   Password of Networking service userneutron   mdcGVl29i  
NOVA_DBPASS   Database password for Compute service   RYgv0rg7p  
NOVA_PASS   Password of Compute service user nova   hsSNsqc43  
RABBIT_PASS   Password of user guest of RabbitMQ   o3NXovnz5  
SWIFT_PASS   Password of Object Storage service userswift   6ci5xWOdk  
METADATA_SECRET       m8uhmQTu2  

9)设置主机名

两台机器都设置hostname

hostnamectl set-hostname controller

hostnamectl set-hostname compute

编辑/etc/hosts:

192.168.16.111  controller

192.168.16.112  compute

10)同步时间

controller上:

yum install -y chrony 

vim /etc/chrony.conf                     //增加或更改

allow 192.168.16.0/24

保存后,执行

systemctl enable chronyd.service

systemctl start chronyd.service

compute上:

yum install -y chrony

vim /etc/chrony.conf                     //增加或更改

server controller iburst

保存后,执行

systemctl enable chronyd.service

systemctl start chronyd.service

4.2、安装openstack

1)安装openstack的yum源(两个机器上都操作)

yum install -y centos-release-openstack-liberty

2)升级所有的包(两个机器上都操作)

yum upgrade                              //结束后重启系统

3)安装openstack 客户端和openstack-selinux

yum install -y python-openstackclient openstack-selinux

以下 4.3-4.12 步骤若无特殊说明则默认表示在 controller 机器上执行操作

4.3、安装sql服务

1)安装

yum install -y mariadb mariadb-server MySQL-python

2)编辑配置文件

vim /etc/my.cnf.d/mariadb_openstack.cnf  //加入下面内容

[mysqld]

bind-address= 192.168.16.111

default-storage-engine= innodb

innodb_file_per_table

collation-server= utf8_general_ci

init-connect= 'SET NAMES utf8'

character-set-server= utf8

3)启动mariadb:

systemctl enable mariadb.service

systemctl start mariadb.service

4)安全配置,设置root密码

mysql_secure_installation

设置root密码为:tn1Pi6Ytm

4.4、安装nosql

1)nosql数据库被Telemetry service用到,在这里我们安装的是mongodb

yum install -y mongodb-server mongodb

2)编辑配置文件

vim /etc/mongod.conf   //更改如下配置

bind_ip= 192.168.16.111

smallfiles= true

3)启动服务

systemctl enable mongod.service

systemctl start mongod.service

4.5、安装消息队列

1)rabbitmq消息队列服务在openstack中起到非常关键的作用,它好比是一个交通枢纽,各个组件之间的通信由它来完成。

yum install -y rabbitmq-server

2)启动rabbitmq-server服务

systemctl enable rabbitmq-server

systemctl start rabbitmq-server

3)添加openstack用户

rabbitmqctl add_user openstack o3NXovnz5        //用户名为openstack,密码为o3NXovnz5

4)为openstack用户授权

rabbitmqctl set_permissions openstack ".*" ".*" ".*"

允许openstack用户可以配置,可以写,可以读

4.6、增加identity 

1、keystone介绍

1)identity即keystone,它是openstack的验证中心,所有的服务都由它来认证。

参考:

2)在keyston中有以下角色:tenants(租户或项目)、用户、角色、服务目录和端点

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/a7acefedca8727c80a34c2b27b20a712.html