OpenStack私有云基础架构与运维(openEuler版)(微课版) 课件 项目3 云基础架构平台部署_第1页
OpenStack私有云基础架构与运维(openEuler版)(微课版) 课件 项目3 云基础架构平台部署_第2页
OpenStack私有云基础架构与运维(openEuler版)(微课版) 课件 项目3 云基础架构平台部署_第3页
OpenStack私有云基础架构与运维(openEuler版)(微课版) 课件 项目3 云基础架构平台部署_第4页
OpenStack私有云基础架构与运维(openEuler版)(微课版) 课件 项目3 云基础架构平台部署_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目3云基础架构平台部署知识准备项目实施拓展知识拓展任务1243学习OpenStack的多种部署方式学习Kolla-ansible概念学习Ansible概念掌握Kolla-ansible部署模式搭建云平台的技能具备OpenStack云平台部署的能力掌握云平台扩容的方法激发创新思维与探索精神,促进科学态度的形成培育诚信为本的道德品质,树立忠诚可靠的行为准则塑造精益求精的工作态度,追求严谨细致的职业风。01知识准备引言如今OpenStack日渐崛起,有很多企业采用了OpenStack,OpenStack开发者、用户遍及全球。国内OpenStack产业生态也正在形成中,三大运营商纷纷有所行动,开始引入OpenStack架构技术。为了更好适应国内OpenStack产业应用发展的需求,需要读者更深入学习和实践OpenStack相关技术。接下来本文将详细介绍OpenStack的多种部署方式、便于用户根据实际应用需求选择合适的部署模式。OpenStack手动部署OpenStack工具部署OpenStack自动化部署支持两种部署模式OpenStack部署工具安装命令脚本化all-in-onemulti-node商业部署工具Fuel开源部署工具RDO容器化部署工具Kolla概念验证环境快速部署工具PackStackAnsible脚本自动化部署DevStack环境部署PuppetOpenStack的多种部署方式02项目实施任务0202任务0303云基础环境构建典型云平台部署OpenStack基础平台扩容项目实施任务0101任务01

云基础环境构建在本项目实践中,将逐步演示如何利用Kolla-Ansible工具从零开始搭建单节点OpenStack环境,为实际私有云平台建设提供实践参考。1.规划节点单节点部署OpenStack云平台,各节点主机名和IP地规划见下表。表1各节点主机名和IP地址规划列表(单节点部署模式下)任务01

云基础环境构建2.环境准备在物理机上申请一台安装openEuler-22.09操作系统的虚拟机作为OpenStackall-in-one节点。all-in-one节点类型为4vCPU、8GB内存、120GB系统硬盘。需要给虚拟机设置两个网络接口,分别是仅主机模式和NAT模式,all-in-one节点配置如图所示。任务01

云基础环境构建3.系统基本环境设置

(1)需要完成修改主机名

(2)更新系统软件包。

(3)修改网卡地址(代码如右所示)(4)载入网卡配置并启动相应的网卡

[root@controller~]#cat\/etc/sysconfig/network-scripts/ifcfg-ens160… … …BOOTPROTO=noneONBOOT=yesIPADDR=1PREFIX=24[root@controller~]#cat\/etc/sysconfig/network-scripts/ifcfg-ens224… … …BOOTPROTO=noneNBOOT=yesIPADDR=1PREFIX=24GATEWAY=DNS1=DNS2=9任务01

云基础环境构建

4.安装Ansible和Kolla-ansible为了可以使用pip3安装和管理Python3软件包,安装pip3。[root@controller~]#dnf-yinstallpython3-pip使用镜像源来加速pip安装包的下载速度并更新Python3中的pip工具到最新版本,保证pip工具的可用性和安全性。安装Ansible,并查看所安装的版本号。[root@controller~]#pip3install-U'ansible>=4,<6'[root@controller~]#ansible--version安装Kolla-ansible和Kolla-ansible环境必需的依赖项并创建Kolla-ansible配置文件目录。将inventory文件复制到/etc/ansible目录。随着Kolla-ansible版本的更迭,从Yoga版本开始需要安装AnsibleGalaxy的依赖项。[root@controller~]#pip3installcryptography==38.0.4[root@controller~]#kolla-ansibleinstall-deps任务01

云基础环境构建

5.Ansible运行配置优化在使用Kolla-ansible部署OpenStack时,它会执行大量的命令和任务,因此对Ansible进行调优可以加快执行速度,具体的优化如下。[root@controller~]#cat<<MXD>/etc/ansible/ansible.cfg[defaults]host_key_checking=Falsepipelining=Trueforks=100timeout=800devel_warning=Falsedeprecation_warnings=Falselog_path=wxic_cloud.loginventory=yoga_all-in-oneexecutable=/bin/shremote_port=22remote_user=rootverbosity=0show_custom_stats=Trueinterpreter_python=auto_legacy_silent[colors]ok=greenskip=brightgraywarn=brightpurple[privilege_escalation]become_user=root[galaxy]display_progress=TrueMXD修改好以后,可以使用ansible-configview命令查看:[root@controller~]#ansible-configview[defaults]host_key_checking=False#SSH服务关闭密钥检测… … …任务01

云基础环境构建6.Kolla-ansible环境初始配置(1)修改主机清单文件进入/etc/ansible目录,将提供的主机清单all-in-one文件过滤掉注释和空行,覆盖到yoga_all-in-one文件。[root@controller~]#cd/etc/ansible/[root@controlleransible]#awk'!/^#/&&!/^$/'all-in-one>yoga_all-in-one(2)检查主机清单文件是否配置正确[root@controller~]#ansible-mpingalllocalhost|SUCCESS=>{"ansible_facts":{"discovered_interpreter_python":"/usr/bin/python3.10"},"changed":false,"ping":"pong"}任务01

云基础环境构建(3)配置OpenStack各服务组件的密码在使用Kolla-ansible部署OpenStackYoga平台时,各个服务组件的密码存储在/etc/kolla/passwords.yml文件中,此文件默认所有的密码是空白的,必须手动或者通过运行随机密码生成器来填写,在部署时建议使用随机密码生成器来生成各个服务的密码。[root@controller~]#kolla-genpwd#修改Horizon界面登录密码为wxic@2024[root@controller~]#sed-i\'s/keystone_admin_password:.*/keystone_admin_password:\wxic@2024/g'/etc/kolla/passwords.yml#验证修改结果[root@controller~]#grepkeystone_admin/etc/kolla/passwords.ymlkeystone_admin_password:wxic@2024任务01

云基础环境构建(4)编辑globals.yml文件本次部署all-in-one时只安装了OpenStack的核心组件,在globals.yml指定参数enable_openstack_core:"yes",安装Glance、Keystone、Neutron、Nova、Heat和Horizon服务,其中要注意一个选项是kolla_internal_vip_address的地址,因为本次Haproxy和keepalived都未启用,故该地址为ens160网卡的地址(本次部署使用1),部署完成后使用该地址登录Horizon。

在/etc/kolla/config/目录自定义Neutron服务的一些配置,这将在部署集群时使用自定义的配置覆盖掉默认的配置。(代码略)任务01

云基础环境构建7.部署集群环境在all-in-one节点安装OpenStackCLI客户端。[root@controller~]#dnf-yinstallpython3-openstackclient为了使部署的all-in-one节点网络路由正常工作,需要在Linux系统中启用IP转发功能,修改所有节点的/etc/sysctl.conf文件,并配置在系统启动时自动加载br_netfilter模块。(代码略)在all-in-one节点使用命令安装OpenStack集群所需要的基础依赖项和修改一些配置文件,如安装Docker和修改Hosts文件等。任务01

云基础环境构建Docker默认镜像拉取地址在国外,在国内拉取镜像速度比较慢,可以修改国内镜像地址来加速镜像的拉取,编辑all-in-one节点/etc/docker/daemon.json文件,添加registry-mirrors部分的内容。在all-in-one节点进行部署前检查,openEuler22.09系统执行过程中如果出现"openEulerreleaseNAversion22.09isnotsupported.Supportedreleasesare:20.03"提示,不必理会继续接下来的操作,不会影响后面的部署。[root@controller~]#kolla-ansibleprechecks任务01

云基础环境构建在all-in-one节点使用以下命令下载OpenStack集群all-in-one节点所需要的全部镜像。[root@controller~]#dockerpull99cloud/skyline:latest[root@controller~]#kolla-ansiblepull任务01

云基础环境构建在all-in-one节点执行以下命令部署OpenStack集群。[root@controller~]#kolla-ansibledeploy任务01

云基础环境构建上述步骤完成后,OpenStack集群部署结束,所有的服务已经启动并正常运行,输入globals.yml文件中定义的kolla_internal_vip_address地址在浏览器登录Horizon界面,用户名为admin,密码为passwords.yml文件中keystone_admin_password的值wxic@2024,单节点部署模式下的Horizon登录和概览界面如图所示。任务01

云基础环境构建8.OpenStackCLI客户端设置OpenStack集群部署完成后,客户端执行命令则需要生成clouds.yaml和admin-openrc.sh文件,这些是管理员(admin)用户的凭据,执行以下命令。[root@controller~]#kolla-ansiblepost-deploy任务01

云基础环境构建执行以下命令,将生成的文件移动到/etc/openstack目录下,并在/etc/profile.d/目录编写/openstack-yoga.sh脚本。[root@controller~]#mkdir/etc/openstack[root@controller~]#mv/etc/kolla/admin-openrc.sh/etc/openstack/[root@controller~]#cat<<MXD>/etc/profile.d/openstack-yoga.sh#!/usr/bin/envbashsource/etc/openstack/admin-openrc.shMXD#重启终端后便可以正常使用openstack命令[root@controller~]#logout使用OpenStack相关命令验证客户端是否可以正常使用和服务是否正常启动,还可以通过查看本次部署OpenStack版本的详细信息,包括各个组件的版本号。任务01

云基础环境构建9.安装Skyline服务(1)创建Skyline服务的数据库在MariaDB容器中创建Skyline服务的数据库并赋予远程访问权限。(2)创建Skyline用户并添加admin角色创建Skyline服务的新用户skyline,密码为wxic@yoga,在默认域default中创建,并向Skyline用户分配admin角色。(3)修改Skyline服务配置文件创建Skyline服务需要的配置文件目录和日志文件目录。[root@controller~]#mkdir-p/etc/skyline/var/log/skyline/var/lib/skyline/var/log/nginx任务01

云基础环境构建(4)运行Skyline服务运行初始化引导容器生成数据库Skyline的表结构,并查看日志以验证数据库是否正常连接和表结构的创建。经查询,生成了alembic_version、revoked_token、settings三张表结构。表结构创建成功后,删除数据库初始化引导容器skyline_bootstrap。然后运行skyline-apiserver服务容器skyline,设置重启策略为always,并挂载配置文件和日志目录的数据卷,将容器的网络连接设置为主机的网络。Skyline服务组件安装结束,在浏览器访问http://1:9942地址便可以看到Skyline登录界面。项目实施任务0101任务0202任务0303云基础环境构建典型云平台部署OpenStack基础平台扩容任务02典型云平台部署本项目实施聚焦于利用先进的Kolla-Ansible部署工具,在双节点场景下部署OpenStack集群,通过详尽步骤展示高可用私有云平台的构建过程,为企业级私有云建设提供切实可行的技术参照与实战指导。1.规划节点双节点部署OpenStack云平台,各节点主机名和IP地址规划见表2。表2各节点主机名和IP地址规划列表(双节点部署模式下)任务02典型云平台部署2.环境准备在物理机上申请两台安装了openEuler-22.09操作系统的虚拟机分别作为OpenStack控制节点和计算节点,处理器处勾选“虚拟化IntelVT-x/EPT或AMD-V/RVI(V)”。控制节点类型为4vCPU、16GB内存、120GB系统硬盘;计算节点类型为2vCPU、8GB内存、120GB系统磁盘以及4个20GB额外磁盘;需要给虚拟机设置两个网络接口,分别是仅主机模式和NAT模式。控制节点计算节点任务02典型云平台部署3.系统基本环境设置(1)修改主机名(双节点操作)(2)更新系统软件包所有节点更新系统软件包以获得最新的功能支持和错误(Bug)修复。(3)网卡名和网卡地址修改(双节点操作)修改完毕后需要载入网卡配置并启动相应的网卡。在使用Kolla-Ansible部署OpenStack时,确保所有节点网卡名一致是非常重要的,这有助于更加方便地进行脚本的维护和管理。禁用网卡命名规则,在/etc/default/grub文件里的GRUB_CMDLINE_LINUX后面追加net.ifnames=0biosdevname=0。任务02典型云平台部署4.安装Ansible和Kolla-ansible执行以下命令,下载并安装pip3。[root@controller~]#dnf-yinstallpython3-pip使用镜像源来加速pip安装包的下载速度。[root@controller~]#mkdir.pip[root@controller~]#cat<<WXIC>.pip/pip.conf[global]index-url=/simple[install]trusted-host=WXIC更新Python3中的pip工具到最新版本。[root@controller~]#pip3install--ignore-installed--upgradepip使用以下命令安装Ansible,并查看所安装的版本号。[root@controller~]#pip3install-U'ansible>=4,<6'[root@controller~]#ansible--versionansible[core2.12.10]任务02典型云平台部署安装Kolla-ansible和Kolla-ansible环境必需的依赖项。#控制节点[root@controller~]#dnf-yinstall\gitpython3-devellibffi-develgccopenssl-develpython3-libselinux[root@controller~]#dnf-yinstallopenstack-kolla-ansible[root@controller~]#kolla-ansible--version14.2.0#计算节点[root@compute01~]#dnf-yinstallpython3-libselinux创建kolla-ansible配置文件目录。[root@controller~]#mkdir-p/etc/kolla/{globals.d,config}[root@controller~]#chown$USER:$USER/etc/kolla任务02典型云平台部署将inventory文件复制到/etc/ansible目录。[root@controller~]#mkdir/etc/ansible[root@controller~]#cp\/usr/share/kolla-ansible/ansible/inventory/*/etc/ansible执行以下命令安装AnsibleGalaxy的依赖项。[root@controller~]#pip3installcryptography==38.0.4[root@controller~]#kolla-ansibleinstall-deps5.Ansible运行配置优化对Ansible进行调优以加快执行速度,具体优化见教材。使用ansible-configview命令查看修改后的配置。[root@controller~]#ansible-configview[defaults]#SSH服务关闭密钥检测host_key_checking=False…… …任务02典型云平台部署6.Kolla-ansible环境初始配置(1)修改主机清单文件进入/etc/ansible目录,编辑openstack_cluster清单文件来指定集群节点的主机及其所属组。在这个清单文件中还可以用来指定控制节点连接集群各个节点的用户名、密码等(注意:ansible_password为root用户的密码,所有节点的root用户密码不可以是纯数字)。(2)检查主机清单文件是否配置正确(3)配置OpenStack各服务组件密码(4)编辑globals.yml文件(代码详见教材)任务02典型云平台部署7.存储节点磁盘初始化(1)初始化Cinder服务磁盘在compute01节点使用一块20GB磁盘创建cinder-volumes卷组,该卷组名和globals.yml里面“cinder_volume_group”指定的参数一致。(2)初始化Swift服务磁盘在compute01节点使用三块20GB磁盘用于Swift存储设备的磁盘,并添加特殊的分区名称和文件系统标签,编写Swift_disk_init.sh脚本初始化磁盘。其中设备名KOLLA_SWIFT_DATA和globals.yml文件里面”swift_devices_name”指定的参数一致。任务02典型云平台部署8.部署集群环境在控制节点安装OpenStackCLI客户端。[root@controller~]#dnf-yinstallpython3-openstackclient为了使部署的控制节点网络路由正常工作,需要在Linux系统中启用IP转发功能,修改controller和compute01节点的/etc/sysctl.conf文件,并配置在系统启动时自动加载br_netfilter模块。在控制节点使用命令安装OpenStack集群所需要的基础依赖项和修改一些配置文件(如安装Docker和修改Hosts文件等)。任务02典型云平台部署修改国内镜像地址加速Docker镜像的拉取,编辑控制节点和计算节点的/etc/docker/daemon.json文件,添加registry-mirrors部分的内容,下面给出控制节点的配置示例,计算节点同样修改即可。[root@controller~]#cat/etc/docker/daemon.json{"bridge":"none","default-ulimits":{"nofile":{"hard":1048576,"name":"nofile","soft":1048576}},"ip-forward":false,"iptables":false,"registry-mirrors":["","","",""]}[root@controller~]#systemctldaemon-reload[root@controller~]#systemctlrestartdocker任务02典型云平台部署在控制节点生成Swift服务所需要的环,编写Swift-init.sh脚本,其中STORAGE_NODES的IP为Swift磁盘所在节点的IP。在控制节点进行部署前检查,openEuler22.09系统执行过程中如果出现"openEulerreleaseNAversion22.09isnotsupported.Supportedreleasesare:20.03"提示,不必理会继续接下来的操作,不会影响后面的部署。[root@controller~]#kolla-ansibleprechecks任务02典型云平台部署在控制节点使用以下命令下载OpenStack集群各个节点所需要的全部镜像,执行结果和用时如左图所示。[root@controller~]#dockerpull99cloud/skyline:latest[root@controller~]#kolla-ansiblepull在控制节点执行以下命令部署OpenStack集群,执行结果和用时如右图所示。[root@controller~]#kolla-ansibledeploy任务02典型云平台部署当上述步骤完成后,OpenStack集群部署完成,所有的服务已经启动并可正常运行。输入globals.yml文件中定义的kolla_internal_vip_address地址在浏览器登录Horizon界面,用户名为admin,密码为passwords.yml文件中keystone_admin_password的值wxic@2024,双节点部署模式下的Horizon登录和概览界面如图所示。任务02典型云平台部署9.OpenStackCLI客户端设置OpenStack集群部署完成后,客户端执行命令需要生成clouds.yaml和admin-openrc.sh文件,这些是admin用户的凭据,执行以下命令。[root@controller~]#kolla-ansiblepost-deploy创建OpenStack认证目录并编写openstack-yoga.sh脚本,在控制节点编写Playbook脚本完成以上操作,Playbook执行结果如图所示,并使用OpenStack相关命令验证客户端是否可以正常使用及服务是否正常启动。任务02典型云平台部署接下来安装Skyline组件,因为此次部署比单节点时多了更多组件,故在安装完成后登录首页查看服务列表,可以发现功能更加丰富,Skyline服务列表如图所示。项目实施任务0101任务0202任务0303云基础环境构建典型云平台部署OpenStack基础平台扩容任务03OpenStack基础平台扩容本任务的核心在于新增一个计算节点,通过详细的操作流程展示如何将新硬件资源融入OpenStack环境,以增强整体计算效能及资源调度灵活性,从而确保平台能够灵活应对日益攀升的应用处理压力,始终保持高效稳定的运行状态。1.规划节点多节点部署OpenStack云平台,各节点主机名和IP地址规划见表3。表3各节点主机名和IP地址规划列表(多节点部署模式下)任务03OpenStack基础平台扩容

2.环境准备在任务2的基础上增加一个计算节点类型为2vCPU、8GB内存、120GB的系统硬盘,处理器处勾选“虚拟化IntelVT-x/EPT或AMD-V/RVI(V)”选项;同样地,需要给虚拟机设置两个网络接口,网络接口1设置为内部网络,其网卡使用仅主机模式,作为控制节点通信和管理使用,网络接口2设置为外部网络,其网卡使用NAT模式,主要作为控制节点的数据网络。在集群部署完成后创建的云主机便使用网络接口2的这块网卡。创建新增计算节点2结果如图所示。任务03OpenStack基础平台扩容3.计算节点2系统初始化(1)修改主机名(2)更新系统软件包(3)网卡名和网卡地址修改在任务2中“系统基本环境设置”部分已经说明了集群环境网卡名称统一的必要性,故需要禁用计算节点2的网卡命名规则,使之与现有集群保持统一的网卡名称,下面给出计算节点2的修改示例。#在GRUB_CMDLINE_LINUX的后面追加net.ifnames=0biosdevname=0[root@compute02~]#grepGRUB_CMDLINE_LINUX/etc/default/grubGRUB_CMDLINE_LINUX="rd.lvm.lv=openeuler/rootcrashkernel=512Mnet.ifnames=0biosdevname=0"#更新GRUB2引导加载程序配置,并将其写入系统的引导记录中[root@compute02~]#grub2-mkconfig-o/boot/efi/EFI/openEuler/grub.cfgGeneratinggrubconfigurationfile...AddingbootmenuentryforUEFIFirmwareSettings...done

任务03OpenStack基础平台扩容#修改的网卡名为eth0、eth1[root@compute02~]#cd/etc/sysconfig/network-scripts/[root@compute02network-scripts]#mvifcfg-ens160ifcfg-eth0[root@compute02network-scripts]#mvifcfg-ens224ifcfg-eth1[root@compute02network-scripts]#sed-i"s#ens160#eth0#"ifcfg-eth0[root@compute02network-scripts]#sed-i"s#ens224#eth1#"ifcfg-eth1#重启系统[root@compute02~]reboot#验证网卡名是否更改成功[root@compute02~]#nmclicshowNAMEUUID

TYPEDEVICEeth1

07400800-2242-32b9-88bb-5fcd323c9550

etherneteth1eth0

139eb82e-8cee-3395-81e7-ce6f3cc5cc40etherneteth0任务03OpenStack基础平台扩容4.集群增加计算节点2(1)修改主机清单文件在控制节点修改openstack_cluster主机清单文件,在组[compute]加入计算节点2的IP地址和root用户密码,修改后如右所示。[root@controller~]#cat/etc/ansible/openstack_cluster….[compute]00…#验证compute02节点能否连通[root@controller~]#ansible-mpingalllocalhost|SUCCESS=>{"ansible_facts":{"discovered_interpreter_python":"/usr/bin/python3"},"changed":false,"ping":"pong"}任务03OpenStack基础平台扩容0|SUCCESS=>{"ansible_facts":{"discovered_interpreter_python":"/usr/bin/python3"},"changed":false,"ping":"pong"}0|SUCCESS=>{"ansible_facts":{"discovered_interpreter_python":"/usr/bin/python3"},"changed":false,"ping":"pong"}0|SUCCESS=>{"ansible_facts":{"discovered_interpreter_python":"/usr/bin/python3"},"changed":false,"ping":"pong"}任务03OpenStack基础平台扩容(2)现有集群加入compute02节点为了使部署的计算节点2网络路由正常工作,需要在Linux系统中启用IP转发功能,修改计算节点2的/etc/sysctl.conf文件,并配置为在系统启动时自动加载br_netfilter模块。在控制节点使用命令安装计算节点2所需要的基础依赖项并修改一些配置文件,如在计算节点2安装Docker和修改Hosts文件等。任务03OpenStack基础平台扩容在计算节点2验证,Docker已经安装完毕,而且Hosts文件也已经修改完成。配置docker镜像下载加速,编辑计算节点2的/etc/docker/daemon.json文件,添加registry-mirrors部分的内容,计算节点2的修改示例如右所示。[root@compute02~]cat/etc/docker/daemon.json{"bridge":"none","default-ulimits":{"nofile":{"hard":1048576,"name":"nofile","soft":1048576}},"ip-forward":false,"iptables":false,"registry-mirrors":["","","",""]}[root@compute02~]systemctldaemon-reload[root@compute02~]sy

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论