2020 ~ 2022 云计算先电 2.4 私有云 IaaS 最小化部署 & 创建 PaaS 实验云主机环境

2020 ~ 2022 云计算先电 2.4 私有云 IaaS 最小化部署 & 创建 PaaS 实验云主机环境版本说明先电版本 v2 4 操作系统 CentOS7 51804IaaS 版本 OpenStackQue 4 15PaaS 版本 DockerEngine 19 03 13DockerComp 1 25 5Kubernetes 1 18 1 前言本帖的安装环境为虚拟机 使用版本为 VMwareWorkst 若使用真实服务器搭建需配合三层交换机使用 请自行更改网卡等参数 下面有详细的注释本帖仅涉及云计算 OpenSta

版本说明

  • 先电版本:v2.4
  • 操作系统:CentOS 7.5 1804
  • IaaS 版本:OpenStack Queens v3.4.15
  • PaaS 版本:
    • Docker Engine:19.03.13
    • Docker Compose:1.25.5
    • Kubernetes:1.18.1

前言

  • 本帖的安装环境为 虚拟机,使用版本为 VMware Workstation Pro 16
  • 若使用真实 服务器 搭建需配合三层交换机使用,请自行更改网卡等参数,下面有详细的注释

本帖仅涉及云计算 OpenStack 先电版基础搭建内容,内容与最新改革试点赛 ChinaSkills(国基北盛)版一致,更多有关完整部署、实战、运维内容请参考其他作者的优秀文章

镜像如何下载详见评论区


一、硬件环境

1. 网卡

虚拟机网卡配置

2. 配置

  • Controller 节点:
    虚拟机控制节点配置

  • Compute节点:
    虚拟机计算节点配置

  • 所有节点处理器开启虚拟化:
    虚拟机处理器虚拟化

注: 内存处理器 根据个人而定,硬盘容量建议 250G 以上;此处计算节点的 第二块硬盘 是给 CinderSwift 服务预留的,最小化部署可先不加;两台虚拟机处理器需要开启 虚拟化 功能;真实 服务器 请根据实际情况作出调整,且需要配合交换机使用。


二、系统安装

1. 加载镜像

  • CentOS-7-x86_64-DVD-1804.iso

下载镜像:CentOS 官方开源镜像站

2. 选择安装软件包

  • 默认最小化安装
    软件包安装

3. 磁盘配置

  • 选择手动配置
    磁盘配置-主界面

  • 点击自动创建
    磁盘配置-手动配置引导

  • 删除 /home 用户分区
    磁盘配置-分配资源1

  • 将可用空间最大化分配给 / 根分区
    磁盘配置-分配资源2


    友情提示:可参考左下角 Available Space 数值。

  • 接受更改
    磁盘配置-接受更改

4. 其它安装前配置

其它安装前配置

语言:英语(US)
时区:中国/上海
KDUMP:关闭





三、配置 CentOS

1. 更改主机名

  • Controller 节点:
    hostnamectl set-hostname controller bash 
  • Compute 节点:
    hostnamectl set-hostname compute bash 

    注:更改完主机名后在执行部署脚本前请 重启 环境,否则 RabbitMQ 服务可能会报错导致部署失败。(重要)

2. 配置网卡

节点名称 内部 IP 地址(网卡1) 外部 IP 地址(网卡2 ) 子网掩码 网关
controller 192.168.100.10 192.168.200.10 24 192.168.100.1
compute 192.168.100.20 192.168.200.20 24 192.168.100.1
vi /etc/sysconfig/network-scripts/ifcfg-<网卡名> # 修改配置文件命令 
  • Controller 节点:
     ens32(网卡1) BOOTPROTO=static ONBOOT=yes IPADDR=192.168.100.10 PREFIX=24 GATEWAY=192.168.100.1 ens33(网卡2) BOOTPROTO=static ONBOOT=yes IPADDR=192.168.200.10 PREFIX=24 
  • Compute 节点:
     ens32(网卡1) BOOTPROTO=static ONBOOT=yes IPADDR=192.168.100.20 PREFIX=24 GATEWAY=192.168.100.1 ens33(网卡2) BOOTPROTO=static ONBOOT=yes IPADDR=192.168.200.10 PREFIX=24 

    注:服务器 自行对照更改参数 。

  • 所有节点上执行:
    systemctl restart network # 重启网卡使配置生效 

3. 基础配置

  • 所有节点上执行:
    • 关闭防火墙和SELINUX
      systemctl disable --now firewalld sed -i "7c SELINUX=disabled" /etc/selinux/config setenforce 0 
    • 添加解析记录
      echo "192.168.100.10 controller" >> /etc/hosts echo "192.168.100.20 compute" >> /etc/hosts 

4. 配置 YUM 源

  • 所有节点上执行:
    rm -rf /etc/yum.repos.d/* # 删除原有官方源 
  • Controller 节点:
    • 上传镜像:

      CentOS-7-x86_64-DVD-1804.iso
      XianDian-IaaS-v2.4.iso

    • 挂载镜像:
       挂载镜像至 /opt 目录 mkdir -p /opt/centos /opt/iaas mount -o loop CentOS-7-x86_64-DVD-1804.iso /opt/centos mount -o loop XianDian-IaaS-v2.4.iso /opt/iaas 
    • 配置本地源:
      vi /etc/yum.repos.d/local.repo # 编辑配置文件命令 
      [centos] name=centos baseurl=file:///opt/centos gpgcheck=0 enabled=1 [iaas] name=iaas baseurl=file:///opt/iaas/iaas-repo gpgcheck=0 enabled=1 
    • 安装并配置 FTP 服务器:
      rpm -ivh /opt/centos/Packages/vsftpd-3.0.2-22.el7.x86_64 echo "anon_root=/opt" >> /etc/vsftpd/vsftpd.conf systemctl enable --now vsftpd 
    • 建立本地缓存:
      yum makecache 
  • Compute 节点:
    • 配置 FTP 源:
      vi /etc/yum.repos.d/ftp.repo # 编辑配置文件命令 
      [centos] name=centos baseurl=ftp://controller/centos gpgcheck=0 enabled=1 [iaas] name=iaas baseurl=ftp://controller/iaas/iaas-repo gpgcheck=0 enabled=1 
    • 建立本地缓存:
      yum makecache 

      友情提示:您可以在此处创建关于 初始环境 的快照,以缓解在实验学习中经常遇到报错需要重搭的问题

四、部署 IaaS 私有云

1. 安装并配置先电软件包

  • 所有节点上执行:
    yum install -y iaas-xiandian vim # 安装先电软件包 
  • Controller 节点:
    vim /etc/xiandian/openrc.sh # 修改配置文件命令 
    变量名称变量的值
    HOST_IP192.168.100.10
    HOST_PASS000000
    HOST_NAMEcontroller
    HOST_IP_NODE192.168.100.20
    HOST_PASS_NODE000000
    HOST_NAME_NODEcompute
    network_segment_IP192.168.100.0/24
    RABBIT_USERopenstack
    RABBIT_PASS000000
    DB_PASS000000
    DOMAIN_NAMEdemo
    ADMIN_PASS000000
    DEMO_PASS000000
    KEYSTONE_DBPASS000000
    GLANCE_DBPASS000000
    GLANCE_PASS000000
    NOVA_DBPASS000000
    NOVA_PASS000000
    NEUTRON_DBPASS000000
    NEUTRON_PASS000000
    METADATA_SECRET000000
    INTERFACE_IP192.168.100.10
    (填入对应节点IP,这里很容易出错,看注释)

    INTERFACE_NAMEens33
    (计算节点的第二块网卡名)

    Physical_NAMEprovider
    (默认)

    minvlan101
    (默认)

    maxvlan200
    (默认)

    CINDER_DBPASS000000
    CINDER_PASS000000
    BLOCK_DISKsdb1
    SWIFT_PASS000000
    OBJECT_DISKsdb2
    STORAGE_LOCAL_NET_IP192.168.100.20
    HEAT_DBPASS000000
    HEAT_PASS000000
    ZUN_DBPASS000000
    ZUN_PASS000000
    KURYR_DBPASS000000
    KURYR_PASS000000
    CEILOMETER_DBPASS000000
    CEILOMETER_PASS000000
    AODH_DBPASS000000
    AODH_PASS000000
    BARBICAN_DBPASS000000
    BARBICAN_PASS000000

    注:NTERFACE_IP这里填入对应节点的IP地址,如果是控制节点的配置文件则填入192.168.100.10,如果是计算节点的配置文件则填入192.168.100.20

  • Compute 节点:
    scp root@controller:/etc/xiandian/openrc.sh /etc/xiandian # 从控制节点拷贝变量配置文件 sed -i "69c INTERFACE_IP=192.168.100.20" /etc/xiandian/openrc.sh # 此条命令对应上面的注释 
  • 所有节点上执行:
    source /etc/xiandian/openrc.sh # 使环境变量生效 

2. 执行官方安装脚本

  • 所有节点上执行:
    iaas-pre-host.sh 
  • Controller 节点:
    iaas-install-mysql.sh iaas-install-keystone.sh iaas-install-glance.sh iaas-install-nova-controller.sh iaas-install-neutron-controller.sh iaas-install-dashboard.sh 
  • Compute 节点:
    iaas-install-nova-compute.sh iaas-install-neutron-compute.sh 

    注:控制节点脚本全部运行完毕后再运行计算节点脚本,不要同时进行,如果遇到报错请检查是否缺漏执行脚本。


四、最小化部署完成

浏览器访问:http://192.168.100.10/dashboard
Dashboard


五、创建云主机环境

下面的内容包含 IaaS 私有云基础运维,实际生产环境中一般使用图形界面代替命令操作

  • 虚拟机环境需要在 Compute 节点执行下面的命令: (重要)
     更改配置文件并重启 nova-compute 服务 crudini --set /etc/nova/nova.conf libvirt virt_type qemu systemctl restart libvirtd.service openstack-nova-compute.service 

    注:这里的两条命令是为了解决 虚拟机 环境下的 QEMU模拟器错误 导致云主机无法使用的问题,旧版本先电v2.2不存在此问题,真实 服务器 请忽略。

1. 创建镜像

glance image-create --name "CentOS7.5" --disk-format qcow2 --container-format bare --progress < /opt/iaas/images/CentOS_7.5_x86_64_XD.qcow2 

镜像列表

2. 创建网络和子网

  • 创建外部网络:

    注:若使用 虚拟机 搭建,外部网络类型请选择Flat;若使用 服务器 搭建,外部网络类型请选择VLAN;注意不要重复执行命令,二选一执行。

    • 虚拟机
      openstack network create ext-net --provider-physical-network provider --provider-network-type flat --external 
    • 服务器
      openstack network create ext-net --provider-network-type vlan --provider-physical-network provider --provider-segment 1 --external 
  • 创建外部网络参数解读:
    网络参数 含义用法
    provider-network-type <供应商网络类型>
    provider-physical-network <供应商物理设备名>

    注:创建Flat VLAN网络类型时需要



    provider-segment <段 id="">

    注:创建VLAN GRE VXLAN Geneve网络类型时需要



    external 外部网络

    注:参数的含义带有<>时,需要在此参数后面跟上对应的值。

  • 创建内部网络:
    openstack network create int-net1 --provider-network-type vxlan --provider-segment 1 openstack network create int-net2 --provider-network-type vxlan --provider-segment 2 
  • 创建子网:

    外部网络

    openstack subnet create ext-subnet --network ext-net --gateway 192.168.200.1 --subnet-range 192.168.200.0/24 --allocation-pool start=192.168.200.100,end=192.168.200.200 --dhcp 

    内部网络

    openstack subnet create int-subnet1 --network int-net1 --gateway 10.0.0.1 --subnet-range 10.0.0.0/24 --dhcp openstack subnet create int-subnet2 --network int-net2 --gateway 10.0.1.1 --subnet-range 10.0.1.0/24 --dhcp 
  • 创建子网参数解读:
    子网参数 含义用法
    network <网络名>
    gateway <网关地址>
    subnet-range <网络地址>
    allocation-pool
    dhcp 开启 DHCP 服务

    网络列表

3. 创建路由

创建路由

openstack router create ext-router 

绑定外部网络

openstack router set ext-router --external-gateway ext-net 

连接内部网络子网

openstack router add subnet ext-router int-subnet1 

路由列表网络拓扑

4. 创建安全组和规则

创建安全组,名称为 all

openstack security group create all 

创建规则

openstack security group rule create --ingress --protocol tcp all openstack security group rule create --ingress --protocol udp all openstack security group rule create --ingress --protocol icmp all openstack security group rule create --egress --protocol tcp all openstack security group rule create --egress --protocol udp all openstack security group rule create --egress --protocol icmp all 

注:创建安全组后请手动删除自带的两条规则,另外不要尝试删除默认安全组 default,否则会报错导致安全组功能不可用。

安全组规则列表

5. 创建云主机

注:下面的一些命令固定了 IP 地址,可自行更换但需注意地址冲突问题。

  • 创建实例类型:
    名称 ID 内存 硬盘 vCPU数
    master 1 12G 100G 6个
    node 2 8G 100G 4个

    注:vCPU数根据实际情况而定,内存和硬盘是官方操作手册规定的,物理资源不够可适当缩减。

    nova flavor-create master 1 12288 100 6 nova flavor-create node 2 8192 100 4 

    命令格式:nova flavor-create
    <名字>
    < ID >
    <内存>
    <硬盘容量>
    < vcpu 数量>


  • 创建云主机:
    nova boot --image CentOS7.5 --flavor 1 --nic net-name=int-net1,v4-fixed-ip=10.0.0.3 --security-groups all --poll master nova boot --image CentOS7.5 --flavor 2 --nic net-name=int-net1,v4-fixed-ip=10.0.0.4 --security-groups all --poll node 
  • 创建云主机参数解读:
    创建云主机参数 含义用法
    image <镜像名>
    flavor <实例类型id>
    nic
    ,

    security-groups <安全组名>
    poll 显示进度
  • 创建浮动IP地址:
    openstack floating ip create ext-net --floating-ip-address 192.168.200.104 openstack floating ip create ext-net --floating-ip-address 192.168.200.105 
  • 绑定浮动IP地址至云主机:
    openstack server add floating ip master 192.168.200.104 openstack server add floating ip node 192.168.200.105 

六、附录

上面的内容您都学会了吗?下面的技巧可能会对您有所帮助。

1. 一键部署脚本

  • 如果您在学习实验中经常遇到报错导致平台崩溃,推荐使用作者编写的一键部署脚本

    2020 ~ 2022 云计算先电 2.4(私有云 IaaS 最小化部署 + 创建PaaS实验云主机环境)Shell 一键部署脚本模板

2. 虚拟机管理器添加控制节点

  • 虚拟机管理器资源不够用怎么办?我们可通过下面的方法将控制节点主机加入到虚拟机管理器资源中,以解决本地环境资源不足的问题。
  • 请在 Controller 控制节点进行如下操作:
    • 更改变量配置文件信息
    vim /etc/xiandian/openrc.sh 
    变量名称 变量的值
    HOST_IP_NODE 192.168.100.10
    HOST_PASS_NODE 000000
    HOST_NAME_NODE controller
    • 执行命令
     使变量配置文件生效 source /etc/xiandian/openrc.sh  执行 nova-compute 脚本 iaas-install-nova-compute.sh  更改配置文件并重启 nova-compute 服务 crudini --set /etc/nova/nova.conf libvirt virt_type qemu systemctl restart libvirtd.service openstack-nova-compute.service 
  • 最终效果:
    虚拟机增加控制节点效果图


七、推广

  • 每次安装完系统后如何快速更换国内软件源?推荐使用下面的一键换源脚本

    GNU/Linux 一键更换国内软件源


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/229236.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午5:09
下一篇 2026年3月16日 下午5:09


相关推荐

  • 云边端与边缘计算技术「建议收藏」

    云边端与边缘计算技术「建议收藏」云边端与边缘计算技术

    2022年6月22日
    34
  • python一个中文占几个字节_中文在python中占几个字节

    python一个中文占几个字节_中文在python中占几个字节如果是 utf 8 编码 那么一个中文字符占用三个字节 一个英文字符占用一个字节 如果是 gbk 编码 那么一个中文字符占用两个字节 一个英文字符占用一个字节 如果是 utf 8 编码 那么一个中文包含繁体字等于三个字节 一个英文字符等于一个字节 如果是 gbk 编码 那么一个中文包含繁体字等于两个字节 一个英文字符等于一个字节 我们可以用如下方法来判断 中文和符号 print type 中文 encode

    2026年3月17日
    2
  • Supervisor进程管理详解「建议收藏」

    Supervisor进程管理详解「建议收藏」文章目录1.supervisor简介2.supervisor安装2.1安装方式2.2验证3.supervisor配置文件3.1主配置文件3.2子配置文件(program配置)3.2.1详细配置3.2.2公司配置4.进程管理命令5.web管理(不常用)6.Supervisor配置systemctl服务7.Supervisor管理redis和nginx7.1安装nginx和redis7.2配置文件7.3重新加载新配置文件7.4测试8.组管理8.1部署三个redis8.2

    2025年9月1日
    6
  • springboot简易入门教程[通俗易懂]

    springboot简易入门教程[通俗易懂]一.在idea中如何使用maven创建springboot工程1.首先打开idea,点击左上方file,在new里面寻找并点击module,如下图所示2.完成上一步后点next3.命名自己的模块

    2022年7月4日
    26
  • 浮动 IP

    浮动 IP在做双机的时候 设定一个 IP 通过访问这个 IP 具体到后台哪个机器 由系统指定 浮动 IP 是随资源一起走的 就是由软件根据情况把该 IP 设置在某台机器上 对外提供服务 为了避免因为一台机器 down 而导致不能对外提供服务 使得业务中断

    2025年8月26日
    6
  • Linux【实操篇】—— 日志管理

    Linux【实操篇】—— 日志管理Linux 操作系统日志管理含实操案例

    2026年3月19日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号