openstack云计算平台<1>--概述、基本环境部署

openstack是什么

  1. OpenStack是一个云操作系统,它控制整个数据中心的计算、存储和网络资源的大型池,所有这些都通过具有通用身份验证机制的api进行管理和配置。
  2. 还提供了一个仪表板,允许管理员控制,同时允许用户通过web界面提供资源。
  3. 除了标准的基础设施即服务功能外,其他组件还提供编排、故障管理和服务管理等服务,以确保用户应用程序的高可用性。

我们的目的是搭建一个类似于阿里云那样的云计算平台,当然,我们搭建的只是一个具备基础功能的平台,更多功能的扩展需要添加不同的组件才可以实现

一、基础准备

1.版本部署

  1. 我们从最通用的OpenStack服务开始,这里官方提供了两个版本,我们选择组件更少的Mitaka版本来部署,系统版本选择Red Hat Enterprise Linux 7、CentOS 7版本
  2. 官方文档链接:https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/.

2.硬件准备

由于实际条件限制,我们使用虚拟机来代替实际的硬件来进行 部署

  1. 这个示例架构需要至少2个(主机)节点来启动基础服务:term:virtual machine <virtual machine (VM)>或者实例。像块存储服务,对象存储服务这一类服务还需要额外的节点
  2. 控制节点上运行身份认证服务,镜像服务,计算服务的管理部分,网络服务的管理部分,多种网络代理以及仪表板。也需要包含一些支持服务,例如:SQL数据库,term:消息队列, and NTP。
  3. 计算节点上运行计算服务中管理实例的管理程序部分。默认情况下,计算服务使用 KVM。你可以部署超过一个计算节点。每个计算节点至少需要两块网卡。可以在计算节点上运行部分块存储,对象存储,Orchestration 和 Telemetry 服务。
  4. 计算节点内存至少需要4G,双网卡,添加的网卡模式一定要选择host-passthrough模式在这里插入图片描述
    在这里插入图片描述

3.硬件信息详细介绍

  1. 你必须用有管理员权限的帐号来配置每个节点。可以用 root 用户或 sudo 工具来执行这些命令。
  2. 为获得最好的性能,我们推荐在你的环境中符合或超过在 :ref:figure-hwreqs中的硬件要求。
  • 以下最小需求支持概念验证环境,使用核心服务和几个:term:CirrOS实例:
    • 控制节点: 1 处理器, 4 GB 内存, 及5 GB 存储
    • 计算节点: 1 处理器, 2 GB 内存, 及10 GB 存储
  1. 由于Openstack服务数量以及虚拟机数量的正常,为了获得最好的性能,我们推荐你的环境满足或者超过基本的硬件需求。如果在增加了更多的服务或者虚拟机后性能下降,请考虑为你的环境增加硬件资源。

二、软件环境

1.主机网络

  1. 配置控制节点网络
  2. 第一块网卡常规配置即可,第二块网卡首先更改网卡命名格式(保持和第一块网卡命名格式相同,防止发生未知错误),然后激活网卡,不需要为其分配ip
[root@controller ~]# cd /boot/grub2/
[root@controller grub2]# cat grubenv 
# GRUB Environment Block
saved_entry=Red Hat Enterprise Linux Server (3.10.0-957.el7.x86_64) 7.6 (Maipo)
net.ifnames=0         %添加这个内核参数,使网卡命名格式为eth格式
添加完之后重启虚拟机机使之生效

编辑/etc/sysconfig/network-scripts/ifcfg-eth1文件
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none

ifup eth1     %激活网卡

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

配置域名解析:
设置节点主机名为 controller,计算节点为compute1,存储节点为block1

在这里插入图片描述

2.网络时间协议(NTP)

我们需要保证不同节点之间的时间同步,我们使用chrony来实现

 yum install chrony  -y       %安装
 [root@controller ~]# vim /etc/chrony.conf      %同步宿主机时间
 server "宿主机ip" iburst
 为了允许其他节点可以连接到控制节点的 chrony 后台进程,在/etc/chrony.conf文件添加下面的键:
 allow  "其它节点ip段/24" 
 
[root@controller ~]# systemctl enable --now chronyd    %设置开机自启并立刻启动
[root@controller ~]# chronyc sources -v       %查看时间同步状态

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

3.openstack包

  1. 下载资源包
  2. 将资源包放在apache的默认发布目录下
  3. 配置软件仓库,路径为刚才资源包所放置的位置
  4. 在主机上升级包
  5. 安装 OpenStack 客户端
  6. RHEL 和 CentOS 默认启用了 SELinux . 安装 openstack-selinux 软件包以便自动管理 OpenStack 服务的安全策略(这里我们禁用了selinux和防火墙,因此这一步可以不做
[root@controller yum.repos.d]# yum upgrade    %主机上升级包
[root@controller yum.repos.d]# yum install python-openstackclient -y    %安装OpenStack客户端

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

4.SQL数据库

大多数 OpenStack 服务使用 SQL 数据库来存储信息。 典型地,数据库运行在控制节点上。指南中的步骤依据不同的发行版使用MariaDB或 MySQL。OpenStack 服务也支持其他 SQL 数据库,包括PostgreSQL <http://www.postgresql.org/>__.

[root@controller yum.repos.d]# yum install mariadb mariadb-server python2-PyMySQL -y    %安装软件包

创建并编辑 /etc/my.cnf.d/openstack.cnf:
[mysqld]
bind-address = xxxxxx            %[mysqld]部分,设置 bind-address值为控制节点的管理网络IP地址以使得其它节点可以通过管理网络访问数据库
default-storage-engine = innodb        %[mysqld]部分,设置如下键值来启用一起有用的选项和UTF-8字符集
innodb_file_per_table
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8

启动数据库服务,并将其配置为开机自启
运行mysql_secure_installation脚本安全安装数据库
[root@controller yum.repos.d]# cd /etc/my.cnf.d/
[root@controller my.cnf.d]# ls
auth_gssapi.cnf  enable_encryption.preset  mysql-clients.cnf
client.cnf       mariadb-server.cnf        tokudb.cnf
[root@controller my.cnf.d]# vim openstack.cnf
[root@controller my.cnf.d]# systemctl enable --now mariadb.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
[root@controller my.cnf.d]# mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] y
New password:                         %密码设置为westos
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!

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

5.消息队列

OpenStack 使用 message queue 协调操作和各服务的状态信息。消息队列服务一般运行在控制节点上。OpenStack支持好几种消息队列服务包括 RabbitMQ, Qpid, 和 ZeroMQ。不过,大多数发行版本的OpenStack包支持特定的消息队列服务。本指南安装 RabbitMQ 消息队列服务,因为大部分发行版本都支持它。如果你想安装不同的消息队列服务,查询与之相关的文档。

[root@controller my.cnf.d]# yum install rabbitmq-server -y      %安装相关组件
[root@controller my.cnf.d]# systemctl enable --now 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@controller my.cnf.d]# rabbitmqctl add_user openstack openstack   %添加openstack用户,密码最好和用户名保持一致,也设置为openstack,之后配置的各种服务用户名和密码的设置最好也遵循用户名和密码一致的规则
Creating user "openstack" ...
[root@controller my.cnf.d]# rabbitmqctl set_permissions openstack ".*" ".*" ".*"   %给openstack用户配置写和读权限
Setting permissions for user "openstack" in vhost "/" ...
[root@controller ~]# netstat -antulp      %查看端口,通过15672端口可以访问web图形化界面

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

6.memcached

认证服务认证缓存使用Memcached缓存令牌。缓存服务memecached运行在控制节点。在生产部署中,我们推荐联合启用防火墙、认证和加密保证它的安全。

[root@controller ~]# yum install memcached python-memcached -y      %安装软件包
[root@controller ~]# vim /etc/sysconfig/memcached      
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
#OPTIONS="-l 127.0.0.1,::1"      %注释这一行,表示允许所有网段(公网)访问
[root@controller ~]# systemctl enable --now memcached.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/memcached.service to /usr/lib/systemd/system/memcached.service.
[root@controller ~]# netstat -antulp|grep 11211      %memcache11211端口开启
tcp        0      0 0.0.0.0:11211           0.0.0.0:*               LISTEN      15693/memcached     
tcp6       0      0 :::11211                :::*                    LISTEN      15693/memcached     
udp        0      0 0.0.0.0:11211           0.0.0.0:*                           15693/memcached     
udp6       0      0 :::11211                :::*                                15693/memcach

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值