openStack-train 1-搭建部署

2024-05-08 16:53:23 浏览数 (1)

openStack-train 搭建部署

当面对KVM集群的时候,我们对KVM的管理以及宿主机的管理就会遇到很大的难度,例如:

  • 查看每一个宿主机有多少台KVM虚拟机?
  • 查看每一个宿主机资源信息,每一个KVM虚拟机资源信息?
  • 查看每一台宿主机配置信息,每一个KVM虚拟机的配置信息
  • 查看每一台宿主机IP地址,每一个KVM虚拟机的IP地址?

OpenStack介绍

带计费功能的kvm管理平台OpenStack,IaaS层自动化管理kvm宿主机,云主机定制化操作。

OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache 2.0许可证授权的自由软件和开放源代码项目。

OpenStack是一个开源的云计算管理平台项目,通过各种互补的服务提供了基础设施即服务(IaaS)的解决方案,每个服务提供API以进行集成。

OpenStack云计算平台,帮助服务商和企业内部实现类似于 Amazon EC2 和 S3 的云基础架构服务(Infrastructure as a Service, IaaS)。

OpenStack核心组件

  • 身份服务(Identity Service):Keystone。为OpenStack其他服务提供身份验证、服务规则和服务令牌的功能,管理Domains、Projects、Users、Groups、Roles。
  • 镜像服务(Image Service):Glance。一套虚拟机镜像查找及检索系统,支持多种虚拟机镜像格式(AKI、AMI、ARI、ISO、QCOW2、Raw、VMDK),有创建上传镜像、删除镜像、编辑镜像基本信息的功能。
  • 资源监控服务 (Placement service):放置提供了一个 WSGI 脚本,用于使用apache、nginx 或其他支持 WSGI 的 Web 服务器运行服务。根据用于部署开放堆栈的打包解决方案,WSGI 脚本可能位于 或 中
  • 计算(Compute):Nova。一套控制器,用于为单个用户或使用群组管理虚拟机实例的整个生命周期,负责虚拟机创建、开机、关机、挂起、暂停、调整、迁移、重启、销毁等操作。
  • 网络&地址管理(Network):Neutron。提供云计算的网络虚拟化技术,为OpenStack其他服务提供网络连接服务。为用户提供接口,可以定义Network、Subnet、Router,配置DHCP、DNS、负载均衡、L3服务,网络支持GRE、VLAN。
  • UI 界面 (Dashboard):Horizon。OpenStack中各种服务的Web管理门户,用于简化用户对服务的操作,例如:启动实例、分配IP地址、配置访问控制等。
  • 块存储 (Block Storage):Cinder。为运行实例提供稳定的数据块存储服务,它的插件驱动架构有利于块设备的创建和管理,如创建卷、删除卷,在实例上挂载和卸载卷。

逻辑架构

OpenStack版本介绍

OpenStack的每个主版本系列以字母表顺序(A~Z)命名,以年份及当年内的排序做版本号,从第一版的Austin(2010.1)到目前最新的稳定版 Yoga,共经历了23个主版本。

官网:https://www.openstack.org/

部署文档:https://docs.openstack.org/install-guide/openstack-services.html#minimal-deployment-for-train

基础环境

首先介绍下基础环境,这个是非常重要的,如果你基础环境都准备不好,那么你在搭建OpenStack各个服务的时候会遇到各种奇葩的问题。后期搭建服务的时候出问题大部分都是前面的基础操作没有做好,比如主机名、本地DNS解析、selinux没关、防火墙firewalld没有设置开机自动关闭等等。

虚机硬件: 我使用的是vmware的虚机准备两台; ——》一个作为controller控制节点; ——》一个作为compute数据节点;

主机名

外网口(net)

内口(仅主机)

配置

系统

controller

192.168.220.10/192.168.220.1/24

192.168.10.10

2u/6G/40G

centos7.9

compute

192.168.100.11/192.168.220.1/24

192.168/10.20

2u/6G/40G

centos7.9

硬件配置

这个根据你的实际情况来进行划分,上面这个只是通过OpenStack官方文档建议的最小的配置来设置的,因为两台机器用途是不同的

  • controller 控制节点:上面会安装很多的软件启动很多的服务,甚至数据库都在他上面,内存可以给多点;
  • compute数据节点,他主要是用来提供硬件资源,启动虚机的,他本身启动的服务就是个nova、neutron和我复用在上面的cinder,他主要就是为创建的虚机来提供硬件资源,所以在搭建过程中不需要给太大

在部署的初期的时候controller控制节点上面2CPU 6G内存足够了,而在compute节点上2CPU4G内存绰绰有余,当你环境搭建好之后可以在手动的给compute节点来提升资源。

基础环境

  • controller
代码语言:javascript复制
==========
# 设置主机名
==========
hostnamectl set-hostname controller && reboot


==========
# 配置hosts
==========
cat >> /etc/host << eof
192.168.10.10	controller
192.168.10.20	compute
eof


==========
# 关闭防火墙和selinux
==========
systemctl stop firewalld && systemctl disable firewalld
sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config


==========
# 免密登录
==========
ssh-keygen 
ssh-copy-id controller
ssh-copy-id compute


========== 
# 各节点配置OpenStack源
==========
rm -rf /etc/yum.repos.d/*
cat > /etc/yum.repos.d/openstack.repo << eof
[base]       
name=base
baseurl=https://repo.huaweicloud.com/centos/7/os/x86_64/
enable=1
gpgcheck=0

[extras]       
name=extras
baseurl=https://repo.huaweicloud.com/centos/7/extras/x86_64/
enable=1
gpgcheck=0

[updates]       
name=updates
baseurl=https://repo.huaweicloud.com/centos/7/updates/x86_64/
enable=1
gpgcheck=0

[train]       
name=train
baseurl=https://repo.huaweicloud.com/centos/7/cloud/x86_64/openstack-train/
enable=1
gpgcheck=0

[virt]       
name=virt
baseurl=https://repo.huaweicloud.com/centos/7/virt/x86_64/kvm-common/
enable=1
gpgcheck=0
eof

yum clean all && yum repolist all

==========
# 安装时间同步
==========
yum install -y chrony
   cp -a /etc/chrony.conf{,.bak}
   sed -i '3,6s/^/#/g' /etc/chrony.conf
   sed -i '7c server ntp1.aliyun.com iburst' /etc/chrony.conf 
   sed -i '8c allow 0.0.0.0/0' /etc/chrony.conf
   sed -i '9c local stratum 10' /etc/chrony.conf
systemctl restart chronyd
systemctl enable chronyd

chronyc sources -v		#时间同步验证
  • compute
代码语言:javascript复制
==========
# 设置主机名
==========
hostnamectl set-hostname compute && reboot


==========
# 配置hosts
==========
cat >> /etc/host << eof
192.168.10.10	controller
192.168.10.20	compute
eof


==========
# 关闭防火墙和selinux
==========

systemctl stop firewalld && systemctl disable firewalld
sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config


==========
# 免密登录
==========
ssh-keygen 
ssh-copy-id controller
ssh-copy-id compute


==========
# 将repo文件从控制节点上复制一份
==========
rm -rf /etc/yum.repos.d/*
scp root@controller:/etc/yum.repos.d/* /etc/yum.repos.d/
yum clean all && yum makecache


==========
# 安装时间同步
==========
yum install -y chrony
    cp -a /etc/chrony.conf{,.bak}
    sed -i '3,6s/^/#/g' /etc/chrony.conf
    sed -i '7s/^/server controller  iburst/g' /etc/chrony.conf

systemctl restart chronyd
systemctl enable chronyd

chronyc sources -v		#时间同步验证

就绪 opensack-train版 软件框架 & 管理工具和防火墙包

代码语言:javascript复制
# yum install centos-release-openstack-train  -y
# yum install python-openstackclient  openstack-selinux  -y

0 人点赞