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

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

版本说明

先电版本:v2.4操作系统:CentOS 7.5 1804IaaS 版本:OpenStack Queens v3.4.15PaaS 版本:

Docker Engine:19.03.13Docker Compose:1.25.5Kubernetes:1.18.1

前言

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

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

镜像如何下载详见评论区

一、硬件环境

1. 网卡

2. 配置

Controller 节点: Compute节点: 所有节点处理器开启虚拟化:

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

二、系统安装

1. 加载镜像

CentOS-7-x86_64-DVD-1804.iso

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

2. 选择安装软件包

默认最小化安装

3. 磁盘配置

选择手动配置 点击自动创建 删除 /home 用户分区 将可用空间最大化分配给 / 根分区

友情提示:可参考左下角 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 )子网掩码网关controller192.168.100.10192.168.200.1024192.168.100.1compute192.168.100.20192.168.200.2024192.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.10HOST_PASS000000HOST_NAMEcontrollerHOST_IP_NODE192.168.100.20HOST_PASS_NODE000000HOST_NAME_NODEcomputenetwork_segment_IP192.168.100.0/24RABBIT_USERopenstackRABBIT_PASS000000DB_PASS000000DOMAIN_NAMEdemoADMIN_PASS000000DEMO_PASS000000KEYSTONE_DBPASS000000GLANCE_DBPASS000000GLANCE_PASS000000NOVA_DBPASS000000NOVA_PASS000000NEUTRON_DBPASS000000NEUTRON_PASS000000METADATA_SECRET000000INTERFACE_IP192.168.100.10(填入对应节点IP,这里很容易出错,看注释)INTERFACE_NAMEens33(计算节点的第二块网卡名)Physical_NAMEprovider(默认)minvlan101(默认)maxvlan200(默认)CINDER_DBPASS000000CINDER_PASS000000BLOCK_DISKsdb1SWIFT_PASS000000OBJECT_DISKsdb2STORAGE_LOCAL_NET_IP192.168.100.20HEAT_DBPASS000000HEAT_PASS000000ZUN_DBPASS000000ZUN_PASS000000KURYR_DBPASS000000KURYR_PASS000000CEILOMETER_DBPASS000000CEILOMETER_PASS000000AODH_DBPASS000000AODH_PASS000000BARBICAN_DBPASS000000BARBICAN_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

五、创建云主机环境

下面的内容包含 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-network-type flat --provider-physical-network provider --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-poolstart=<始IP>,end=<尾IP>--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数master112G100G6个node28G100G4个

注: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_NODE192.168.100.10HOST_PASS_NODE000000HOST_NAME_NODEcontroller

执行命令 ## 使变量配置文件生效

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 一键更换系统软件源脚本

🌟 相关推荐

想知道看世界杯比分在哪看?这里有最全的实用攻略!
2025最新香烟防伪码揭秘!扫码辨真假这些技巧内行才知道
盘点娱乐圈中皮肤黑的6大女星,宁静朱茵上榜,你最喜欢哪一位?