实验环境:

两台虚拟机:

OS: CentOS 7.4<br />    node1 2c 4G 60G 两块网卡(host+nat)<br />    node2 2c 2G 40G    两块网卡(host+nat)<br /> 

IP地址规划:

  •  host网卡:管理网络(管理机器)+API网络(节点上不同服务之间通信)
  •  nat网卡:VM网络+外部网络

    •   VM网络:指的是虚拟机通信网络(内部网络)
    •   外部网络:虚拟机访问公网服务
    •   补充: 业务网络:业务之间网络通信

 

  •  存储网络
  •  PXE网络
  •  ....

 
 搞这么多网络的目的就是:网络流量分流,减少网络带宽瓶颈
   

node1: controller节点(控制|管理节点)

  •   host: 192.168.100.10    
  •   nat: 172.16.100.10  

    node2: compute节点(计算节点)

  •   host: 192.168.100.20
  •   nat: 172.16.100.20  
  •  nat网卡:建议dhcp获取

配置实验环境

配置VMware网络适配器

  1. 打开虚拟机,选择编辑选项,选择网络编辑器,选择更改设置


  1. 将host  和 nat  ip适配器分别设置成如下图





然后我们保存。

  1. 检查,打开cmd 输入ipconfig检查网卡是否修改。


装系统


基础环境部署

1. 根据实验室环境修改网卡设置

配置虚拟机网卡

node1: controller节点(控制|管理节点)

  •   host: 192.168.100.10    
  •   nat: 172.16.100.10  
  1. 我们在第一台虚拟机中进入/etc/sysconfig/network-scripts/这个文件夹
  2. 修改host网卡文件:(注意一般ens33是nat网卡,ens34是host网卡)
  3. 将这些网卡的ONBOOT都设置成yes(即打开网卡)
  4. 注意修改完配置之后使用:systemctl restart network重启网卡
  5. 查看网卡ip地址ip a | grep glo <注释1>,查看172开头的nat网卡ip地址
  6. 使用xshell连接虚拟机(注意,这里我们连接的ip地址为nat网卡自动分配的地址,172开头的那个)
  7. 编辑ens34文件:

    TYPE=Ethernet
    BOOTPROTO=static
    NAME=ens34
    UUID=1aff4dc3-f361-4993-b185-bc1beeef81da
    DEVICE=ens34
    IPADDR=192.168.100.10
    netmask=255.255.255.0
    ONBOOT=yes

    7.重启ens34网卡

    [root@localhost network-scripts]# ifdown ens34
    成功断开设备 "ens34"。
    [root@localhost network-scripts]# ifup ens34
    连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/5)

node2: compute节点(计算节点)

  •   host: 192.168.100.20
  •   nat: 172.16.100.20  
  •  nat网卡:建议dhcp获取(原因是我们需要使用虚拟机下载yum源,需要访问外网,所以需要一个访问外网的网卡)

具体配置方法参照1node1

完成之后,我们将两台虚拟机xshell连接的ip地址切换成192.168.100开头的。

2. 修改主机名和添加主机名解析(并测试)

控制节点:  

  hostnamectl set-hostname controller  
 vi /etc/hosts
添加
  192.168.100.10 controller
  192.168.100.20 compute

计算节点:

  hostnamectl set-hostname compute  
 vi  /etc/hosts
添加:
  192.168.100.10 controller
  192.168.100.20 compute
 

测试验证:

  在compute节点: ping controller  
  在controller节点:ping compute  
   

3. 关闭防火墙和SELINUX

关闭防火墙

https://www.justinwuwei.cn/index.php/archives/67/

关闭selinux

setenforce 0
vi /etc/selinux/config
修改
SELINUX=disabled

4. 配置YUM源(阿里云源/本地源)

https://developer.aliyun.com/mirror/centos

NTP同步

NTP提供准确时间,首先要有准确的时间来源,这一时间应该是国际标准时间UTC。

To properly synchronize(同步) services among nodes, you can install Chrony, an implementation(实现) of NTP. 

安装chrony服务

controller节点远程同步某台公网上的NTP服务器;compute节点同步controller节点

控制节点(controller)

官方文档:
https://docs.openstack.org/install-guide/environment-ntp-controller.html

NTP服务配置: yum install chrony

1.控制节点修改配置文件

         - 同步NTP服务器时间
  - 允许其他节点同步控制节点时间

具体操作:
vim  /etc/chrony.conf  

server time1.aliyun.com iburst
server 210.72.145.44 iburst
server s1a.time.edu.cn iburst
allow 192.168.100.0/24

使用  cat /etc/chrony.conf | grep -Ev "^#|^$"  <注释3>查看配置是否添加

 自启服务:systemctl enable chronyd && systemctl restart chronyd
   
 

2.计算节点修改配置文件

 - 同步控制节点
vim  /etc/chrony.conf

server controller iburst

   
 自启服务:systemctl enable chronyd && systemctl restart chronyd
   

3. 所有节点启动chronyd服务,并做测试

 命令: chronyc sources 查看是否同步:

[root@controller ~]# chronyc sources
 210 Number of sources = 3
 MS Name/IP address         Stratum Poll Reach LastRx Last sample                
 ===============================================================================
 ^? 210.72.145.44                 0   8     0     -     +0ns[   +0ns] +/-    0ns
 ^* 203.107.6.88                  2   6    77    48  -5226us[-4202us] +/-   37ms // 同步成功
 ^+ 60.10.112.202.in-addr.ar>     1   6    77    47    +13ms[  +13ms] +/-   16ms
 
 [root@compute ~]# chronyc sources
 210 Number of sources = 1
 MS Name/IP address         Stratum Poll Reach LastRx Last sample                
 ===============================================================================
 ^* controller                    3   6    37    24  +3617ns[ +941us] +/-   38ms // 同步成功

 
 时区修改命令:timedatectl set-timezone 'Asia/Shanghai'

安装Opnestack包(Q版本): 所有节点 

1.下载安装包

yum install centos-release-openstack-queens

2.下载客户端

yum install python-openstackclient

注释

<注释1>

grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
详细:https://blog.csdn.net/qq_38646470/article/details/80141695

<注释2>

ifup指令用来启动网络接口设备,设备必须是定义在“/etc/sysconfig/network-scripts/ifcfg-ethX”或者“/etc/sysconfig/network”的文件。这些脚本通常使用一个参数:配置的名称(例如eth0)。在引导序列中,使用“boot”的第二个参数调用它们,以便在引导过程中不想打开的设备(ONBOOT=no)此时可以被忽略。

<注释3>

grep -E和egrep一样,我理解的是扩展版的grep,那个-v是不看后面正则匹配的内容^后面加的东西就是以什么开头的,$前就是以什么结尾的,^#是匹配以#开头的,^$就是空行,这个大概就是不看文件里的空行和以#开头的注释行

最后修改:2024 年 03 月 14 日
如果觉得我的文章对你有用,请随意赞赏