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
==========
# 设置主机名
==========
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
==========
# 设置主机名
==========
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