CentOS 8搭建 OpenStack(yoag版) 的方法和步骤

发布时间 2023-09-07 01:38:47作者: 我的城市没有海

一、OpenStak简介

1.1、简介

OpenStack既是一个社区,也是一个项目和一个开源软件,提供开放源码软件,建立公共和私有云,它提供了一个部署云的操作平台或工具集,其宗旨在于:帮助组织运行为虚拟计算或存储服务的云,为公有云、私有云,也为大云、小云提供可扩展的、灵活的云计算。
OpenStackd开源项目由社区维护,包括OpenStack计算(代号为Nova),OpenStack对象存储(代号为Swift),并OpenStack镜像服务(代号Glance)的集合。 OpenStack提供了一个操作平台,或工具包,用于编排云。

 

1.2、各个组件说明

核心组件

功能说明

keystone组件

提供:所有组件和用户的身份验证服务

glance组件

提供:image镜像服务,如:iso安装光盘文件、磁盘镜像、系统快照

nova组件

提供:compute计算服务,通过控制节点来管理所有的计算节点

neutron组件

提供:network网络服务,通过创建一个虚拟的网络层,为所有计算节点提供网络通讯服务

dashboard 组件

提供:基于Web页面的管理控制平台

扩展组件

功能说明

cinder组件

提供:块存储服务,属于SAN存储区域网络,用于管理虚拟机的磁盘卷文件(创建、添加、扩容、快照、删除等等)

swift组件

提供:对象存储服务,属于NAS网络附加存储,无需RAID技术,就可实现可伸缩、高可用的分布式文件系统存储服务

 

二、前期准备工作

2.1、准备3台虚拟机(1个控制节点、2个计算节点)

- 首先安装VMware WorkStations(最新版),
- 新增虚拟机,
- 镜像使用CentOS-Stream-8-x86_64-latest-dvd1.iso(下载地址<https://mirrors.tuna.tsinghua.edu.cn/centos/8-stream/isos/x86_64/CentOS-Stream-8-x86_64-latest-dvd1.iso>)
- 安装完成后克隆两台虚拟机(计算节点)。

2.2、虚拟机的性能要求:

-  内存大于等于8G
-  硬盘200G
-  CPU至少2核,开启vt-x
-  网卡2块,一张网卡用来连接互联网,另外一张网卡用来内部互联。

 注意事项:

Kdump(kernel dump,内核备份),内存小于2G,则Kdump就不会生效。所以想生效,内存必须大于2G,当安装界面的Kdump不管勾不勾选,都会占用160M内存。
如果勾选了,系统每次启动时,内核会被读到160M内存中,如果系统崩溃,就可以还原内核。如果不勾选,当内核崩溃时,就无法恢复。

三、系统初始化配置

3.1、主机名配置

[root@controller ~]# hostnamectl set-hostname controller
[root@computer1 ~]# hostnamectl set-hostname computer1
[root@computer2 ~]# hostnamectl set-hostname computer2

3.2、网络配置

控制节点:

[root@controller ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens160 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=eui64
NAME=ens160
UUID=127549ff-6b79-4276-8b3a-8488d1222de8
DEVICE=ens160
ONBOOT=yes
IPADDR=192.168.100.54
PREFIX=24
GATEWAY=192.168.100.1
DNS1=223.5.5.5
DNS2=23.6.6.6

 计算节点1:

[root@computer1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens160 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=eui64
NAME=ens160
UUID=127549ff-6b79-4276-8b3a-8488d1222de8
DEVICE=ens160
ONBOOT=yes
IPADDR=192.168.100.55
PREFIX=24
GATEWAY=192.168.100.1
DNS1=223.5.5.5
DNS2=23.6.6.6

计算节点2:

[root@computer2 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens160 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=eui64
NAME=ens160
DEVICE=ens160
ONBOOT=yes
IPADDR=192.168.100.56
PREFIX=24
GATEWAY=192.168.100.1
DNS1=223.5.5.5
DNS2=23.6.6.6

#重新加载配置文件
nmcli connection reload
#重启网卡
nmcli connection up ens160
同理在计算节点也使用相同命令,确保配置生效。

3.3、设置免密登录

#在controller节点上生成ssh key,将公钥复制给其他节点,实现免密登陆。

ssh-keygen

一路回车

#拷贝公钥到另外2个计算节点
ssh-copy-id -i /root/.ssh/id_rsa.pub computer1
ssh-copy-id -i /root/.ssh/id_rsa.pub computer2

#测试ssh免密链接是否正常
ssh computer1
ssh computer2

 3.4、添加hosts文件主机记录

[root@controller ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.100.54 controller
192.168.100.55 computer1
192.168.100.56 computer2

#将以上控制节点的配置拷贝到两个计算节点对应的文件夹里。
scp /etc/hosts root@computer1:/etc
scp /etc/hosts root@computer2:/etc

 3.5、关闭所有节点防火墙和SeLinux

systemctl disable firewalld.service --now

sed -i's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config 

3.6、配置ntp时间服务器

#选择在控制节点上部署NTP时间服务器。
yum -y install chrony

#配置开机自启
systemctl enable chronyd --now

#修改配置文件,让控制节点成为NTP服务器。
cat /etc/chrony.conf

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
# pool 2.centos.pool.ntp.org iburst(注释掉默认的NTP服务器)
# Record the rate at which the system clock gains/losses time.
driftfile /var/lib/chrony/drift
# Allow the system clock to be stepped in the first three updates
# if its offset is larger than 1 second.
makestep 1.0 3
# Enable kernel synchronization of the real-time clock (RTC).
rtcsync
# Enable hardware timestamping on all interfaces that support it.
#hwtimestamp \*
# Increase the minimum number of selectable sources required to adjust
# the system clock.
#minsources 2
# Allow NTP client access from local network.
allow 192.168.0.0/16(取消注释,网络地址以及端口号需要包含计算节点)
# Serve time even if not synchronized to a time source.
local stratum 10(取消注释)
# Specify file containing keys for NTP authentication.
keyfile /etc/chrony.keys
# Get TAI-UTC offset and leap seconds from the system tz database.
leapsectz right/UTC
# Specify directory for log files.
logdir /var/log/chrony
# Select which information is logged.
#log measurements statistics tracking

#修改两个计算节点的chrony配置文件,配置相同。
vim /etc/chrony.conf
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#pool 2.centos.pool.ntp.org iburst(注释掉)
pool controller iburst(新增一条)

#修改完成后重启服务
systemctl restart chronyd.service

vim /etc/chrony.conf
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#pool 2.centos.pool.ntp.org iburst(注释掉)
pool controller iburst(新增一条)

#修改完成后重启服务
systemctl restart chronyd.service

3.7、在所有节点上都开启openstack安装源

 yum -y install centos-release-openstack-yoga
 yum config-manager --set-enabled powertools
 yum -y upgrade
 reboot
 yum -y install python3-openstackclient
 yum -y install openstack-selinux

++++++++++++++++++++++++++++++++++++++++++++关闭3台主机并拍摄快照+++++++++++++++++++++++++++++++++++++++++