虚拟化技术与应用 实验手册_第1页
虚拟化技术与应用 实验手册_第2页
虚拟化技术与应用 实验手册_第3页
虚拟化技术与应用 实验手册_第4页
虚拟化技术与应用 实验手册_第5页
已阅读5页,还剩159页未读 继续免费阅读

下载本文档

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

文档简介

实验1基于Bridge模式的容器网络通信案例【实验目的】某公司正在开发一个分布式应用程序,该程序由多个容器组成,容器基于CentOS7.0系统,每个容器都运行着不同的服务。为了使这些容器能够相互通信,我们将使用Docker的Bridge网络模式来创建一个容器网络,并测试容器APP1和容器APP2之间的通信。【实验环境】实验拓扑图如图1-1所示。图1-1Bridge实验网络拓扑【实验步骤】以下操作均在测试机上完成。1.构建Bridge网络使用命令dockernetworkcreate-dbridgesangfor构建名为sangfor的Bridge网络,具体如图1-2所示。dockernetworkcreate-dbridgesangfor图1-2构建Bridge网络2.查看网络信息(1)使用dockernetworkls查看所有网络信息,具体如图1-3所示。dockernetworkls图1-3所有网络信息(2)使用dockerinspect网络ID,查看名称为“sangfor”网络的详细信息,具体如图1-4所示。我们可以看到该网络的子网为/16,网关为。dockerinspect9437e98175b6图1-4sangfor网络的详细信息3.容器创建基于Centos镜像以及sangfor网络创建两个容器,容器名称为APP1和APP2,具体如图1-5所示。dockerrun-it--nameAPP1--networksangforcentosdockerrun-it--nameAPP2--networksangforcentos图1-5容器创建4.查看容器IP地址(1)APP1容器IP查看情况如图1-6所示,可以看到其地址为。dockerexec-iteac02e69ff64/bin/bashipaddr图1-6APP1容器IP地址APP2容器IP查看情况如图1-7所示,可以看到其地址为。dockerexec-it2e5509da1b1d/bin/bashipaddr图1-7APP2容器IP地址5.检查连通性在APP1和APP2容器内,互相使用Ping命令检查连通性。APP1内使用Ping命令,检查与APP2的连通信,结果如图1-8所示。连通正常。pingAPP2图1-8APP1与APP2连通性APP2内使用Ping命令,检查与APP1的连通信,结果如图1-9所示。连通正常。pingAPP1图1-9APP2与APP1连通性

实验2安装QEMU【实验目的】某企业需要在其服务器上部署多个虚拟机来运行不同的应用程序和服务。为了提高资源利用率和降低成本,该企业决定采用虚拟化技术来实现服务器的多实例化。为了实现虚拟化,企业选择了QEMU作为虚拟化和模拟器平台。QEMU是一款开源的虚拟化软件,具有良好的跨平台性、兼容性和可扩展性。【实验环境】1.本实验基于Centos7.x图形化桌面版系统。如果未安装图形化界面,可以执行以下命令并重启。yumgroupinstall"ServerwithGUI"-ysystemctlset-defaultgraphical2.实验需要确保主机支持虚拟化注意:自2012年底,Qemu1.3.0版本发布后,qemu-kvm中针对KVM的修改已全部加入到普通的Qemu代码库中,从此之后可完全使用纯qemu来与kvm配合使用(命令行仅需添加-enable-kvm参数),而无需专门使用qemu-kvm代码库了,并且qemu-kvm的更新自2012年9月已经停止更新。了解即可。【实验步骤】1.QEMU安装方法一:使用包管理器安装QEMU(1)设置国内源前提是先下载并安装新的CentOS-Base.repo,并安装EPEL源。cd/etc/yum.repos.d/mkdirbackupmv*.repobackup/wget-OCentOS-Base.repo/repo/Centos-7.repowget-Oepel.repo/repo/epel-7.repoyumcleanallyummakecache(2)安装QEMU安装QEMU命令如下。如图2-1和图2-2所示。yumlistavailableqemuyuminstallqemu-y注:为了避免因qemu版本低,跟glibc的版本不兼容后导致问题,例如告警(process:16182):GLib-WARNING**:17:12:10.960:gmem.c:489:custommemoryallocationvtablenotsupported,我们可以尝试使用2.7以上版本。这里我们还是用的2.0.0,忽略告警即可。图2-1安装QEMU图2-2安装QEMU过程若安装过程出现提示某些rpm包无法安装,一般是源内未能找到相应的rpm包,建议自行寻找rpm包;同时,确定是否是由于网络卡顿等原因造成的未能安装成功。然后,根据报错进行相应问题解决。不过此时QEMU仍然不可用,会报错提示“qemu:couldnotloadPCBIOS'bios-256k.bin'”,bios-256k.bin是一个软链接文件,链接的是/root/qemu/pc-bios目录下的bios-256k.bin文件,但是该目录下并没有bios-256k.bin这个文件,这可能是redhat系统版本的BUG,所以,我们可以尝试复制一个pc-bios目录下的bios.bin为bios-256k.bin来解决,也可以安装qemu-kvm来解决。如图2-3和图2-4所示。yuminstallqemu-kvm图2-3安装qemu-kvm过程图2-4安装qemu-kvm查询版本。如图2-5所示。qemu-system-x86_64--version图2-5版本查询注:如需卸载,卸载QEMU命令#yumeraseqemu*方法二:从源代码安装QEMU(不建议,需要安装的包和库太多,了解方法即可)1.安装python3.8.6(以及python3-pip)2.安装编译器,准备编译环境yum-yinstallzlib-develbzip2-developenssl-develncurses-develsqlite-develreadline-develtk-develgccmakegcc-c++3.安装git工具yuminstallgit-y(1)下载QEMU的源代码。gitclone/qemu-project/qemu.git或者wget/qemu-3.1.0.tar.xz(2)编译QEMUcdqemu./configuremake在编译过程中可能会因为缺少某些依赖库而出现错误,需要手动安装缺少的库,并重新编译。例如sphinx、sphinx_rtd_theme、Ninja、gcc-7.4.0、clang-10.0等。(3)安装QEMUmakeinstall2.QEMU使用使用QEMU启动虚拟机需要一份操作系统映像文件或镜像文件。我们以Ubuntu16.04为例。(1)下载Ubuntu系统镜像文件wget/16.04/ubuntu-16.04.7-server-amd64.iso如图2-6所示。图2-6Ubuntu16.04镜像下载(2)创建一个虚拟磁盘镜像qemu-imgcreate-fqcow2ubuntu-test.qcow220G如图2-7所示。图2-7创建虚拟磁盘镜像(3)启动虚拟机qemu-system-x86_64-bootd-cdromubuntu-16.04.7-server-amd64.iso-hdaubuntu-test.qcow2如图2-8所示。注:参数-nographic,禁用图形界面。稍等片刻,虚拟机中会自动开始安装Ubuntu操作系统,按照提示进行安装即可,如图2-9所示。图2-8虚拟机安装界面图2-9系统安装3.QEMU的常用操作(1)使用Ctrl+Alt+2切换到QEMU的控制台界面。(2)使用info命令查看虚拟机状态。(qemu)infostatus如图2-10所示。图2-10查看虚拟机状态(3)使用help查看命令示例(qemu)help

实验3安装KVM【实验目的】某企业需要在其服务器上部署多个虚拟机来运行不同的应用程序和服务。为了提高资源利用率和降低成本,该企业决定采用虚拟化技术来实现服务器的多实例化。为了实现虚拟化,企业选择了QEMU和KVM联合解决方案作为虚拟化和模拟器平台。教材中介绍的即为QEMU和KVM联合解决方案的安装部署过程。【实验环境】1.本实验基于Centos7.0系统。2.实验需要确保主机支持虚拟化。注意:自2012年底,Qemu1.3.0版本发布后,qemu-kvm中针对KVM的修改已全部加入到普通的Qemu代码库中,从此之后可完全使用纯qemu来与kvm配合使用(命令行仅需添加-enable-kvm参数),而无需专门使用qemu-kvm代码库了,并且qemu-kvm的更新自2012年9月已经停止更新。了解即可。【实验步骤】1.准备工作1)关闭selinux防火墙,如图3-1所示。setenforce0getenforce图3-1关闭selinux并查看状态2)查看是否支持虚拟机,如图3-2所示。egrep'(vmxsvm)'--color=always/proc/cpuinfo图3-2查看是否支持虚拟化2.安装kvm安装kvm软件包,如图3-3和图3-4所示。yuminstallqemu-kvmlibvirtlibvirt-daemonlibvirt-clientlibvirt-daemon-driver-qemuvirt-installvirt-managervirt-viewervirt-v2vlibguestfs-tools-y图3-3安装软件包过程图3-4安装软件包3.验证1)启动libvirtd并查看运行状态,如图3-5所示。systemctlstartlibvirtdsystemctlstatuslibvirtd图3-5查看libvirtd运行状态2)查看kvm模块,如图3-6所示。lsmod|grepkvm图3-6查看kvm模块通过本实验,我们深入了解了QEMU虚拟化技术的应用和配置过程。虚拟化技术可以帮助企业提高服务器资源利用率和降低成本,提供灵活的服务器部署和管理方式。掌握QEMU的使用和配置技巧,对于企业来说具有重要意义,帮助他们更好地应对虚拟化环境中的问题,提高服务器的性能和功能。

实验4Docker安装与配置【实验目的】在安装Docker之前,需要确保系统满足Docker的最低要求。首先,需要64位操作系统和内核版本为3.10或更高版本。其次,Docker需要使用系统级别的cgroup和namespace特性进行容器的隔离和限制。因此,必须确保这些特性在内核中已经开启。接下来,我们将介绍Docker的安装和配置过程。【实验环境】1.本实验基于Centos7.0系统。2.软件版本更新。【实验步骤】1.更新系统软件包在Linux系统中,可以通过yumupdate命令更新系统软件包,具体如图4-1所示。yumupdate图4-1更新完成软件包2.安装Docker安装docker,具体如图4-2所示。yuminstalldocker-ce-y图4-2安装完成docker这将下载和安装Docker的最新版本。Docker还可以在Windows和macOS系统中运行,并可以从官方网站下载相应的安装程序。根据操作系统和版本,可能需要一些其他的配置。3.配置Docker在安装完成后,需要配置Docker以便于使用。以下是一些常见的配置:(1)通过dockerversion查看Docker版本,具体如图4-3所示。dockerversion图4-3查看docker版本号该命令可以查看Docker的版本号和其他相关信息。(2) 通过命令systemctlrestartdocker激活Docker服务。该命令可以启动Docker服务。此外,还可以使用systemctlenabledocker命令来在系统启动时自动启动服务,具体如图4-4所示。systemctlrestartdockersystemctlenabledocker图4-4启动docker并查看状态通过正确配置和安装Docker,我们可以轻松地创建、部署和管理容器化应用程序。这为我们提供了更高效、可扩展和灵活的开发和部署环境。总之,Docker的安装和配置使得容器化应用程序的开发和部署变得更加简单和可靠。

实验5Docker镜像的管理【实验目的】在使用Docker镜像时,需要管理镜像的版本、下载、上传和删除等。在实际应用中,我们通常会使用已有的镜像作为基础,然后根据自己的需求进行定制和扩展。因此,了解如何管理镜像版本,以及如何进行下载、上传和删除等操作是非常重要的。【实验环境】本实验基于Centos7.0系统。【实验步骤】1.下载镜像可以使用dockerpull命令从DockerHub下载镜像。该命令按照标签拉取相应的镜像,默认会拉取最新版本。例如,dockerpullnginx命令会下载一个名为nginx的Docker镜像,具体如图5-1所示。dockerpullnginx图5-1拉取nginx镜像过程如果需要下载特定版本的镜像,可以使用镜像的标签。例如,dockerpullnginx:1.13命令会下载一个nginx1.13版本的镜像,具体如图5-2所示。dockerpullnginx:1.13图5-2拉取nginx:1.13镜像过程2.查看本地镜像可以使用dockerimages命令查看本地的Docker镜像列表。该命令将显示镜像的名称、版本、镜像ID、创建时间等相关信息。例如,dockerimages命令会列出所有可用的本地Docker镜像,具体如图5-3所示。dockerimages图5-3查看本机镜像3.删除镜像可以使用dockerrmi命令删除本地的Docker镜像。该命令需要指定要删除的镜像的名称或ID。例如,dockerrminginx命令将删除一个名为nginx的镜像,具体如图5-4所示。dockerrminginx图5-4删除nginx镜像过程需要注意的是,如果删除的是正在使用的镜像会导致操作失败。此外,在删除镜像时,Docker会保留其历史版本的层,以便可以进行回退操作。

实验6Docker镜像的使用【实验目的】在Docker中,可以使用Docker镜像创建Docker容器。可以使用dockerrun命令创建新的容器,并在其中运行应用程序。接下来进行容器的使用操作。在Docker中,使用Docker镜像创建Docker容器是一种常见的部署和运行应用程序的方式。Docker镜像是一个可执行的软件包,其中包含了运行应用程序所需的所有依赖项和配置。通过创建容器,我们可以在隔离的环境中运行应用程序,并确保应用程序的可移植性和一致性。在本实验中,我们将学习如何使用dockerrun命令创建一个新的容器,并在其中运行一个简单的应用程序。我们将了解如何指定镜像、容器名称以及其他配置选项,并观察容器的运行状态和输出。通过这个实验,我们将熟悉Docker容器的基本使用方法,并理解容器在应用程序开发和部署中的重要性。【实验环境】本实验基于Centos7.0系统。【实验步骤】1.运行容器可以使用dockerrun命令创建一个新的容器,并在其中运行应用程序。该命令需要指定要使用的镜像名称,以及要在容器中运行的命令。例如,dockerrun-d-p80:80nginx命令会从nginx镜像创建一个新的容器,并在其中启动NginxWeb服务器,具体如图6-1所示。dockerrun-d-p80:80nginx图6-1启动nginx容器该命令使用-d标志使容器在后台运行,-p标志将容器的端口80映射到主机的端口80。2.进入容器可以使用dockerexec命令在容器中运行命令,具体如图6-2所示。修改为自己实际容器ID。dockerexec-it1a09e8714e6bash图6-2进入容器其中-i和-t标志用于在容器中运行一个新的Bashshell,并进入交互模式。3.停止容器可以使用dockerstop命令停止容器,具体如图6-3所示。修改为自己实际容器ID。dockerstop1a09e8714e6ce图6-3停止容器4.列出容器可以使用dockerps命令列出所有正在运行的容器。该命令将显示容器的ID、状态、名称、映射端口等相关信息。例如,以下命令会列出所有正在运行的容器。或者,使用-all或-a标志,可以列出所有的容器,包括停止的容器,具体如图6-4所示。dockerps-a图6-4列出所有容器5.删除容器可以使用dockerrm命令删除容器,具体如图6-5所示。修改为自己实际容器ID。dockerrm1a09e8714e6c图6-5删除容器Docker镜像是Docker容器构建的基础。在管理和使用Docker镜像时,需要考虑镜像的版本、下载、上传和删除等因素。在本节中,我们深入了解了Docker镜像的概念、创建、管理和使用等方面的知识。

实验7Docker私有镜像仓库Registry的安装和使用【实验目的】Docker仓库可以分为公开仓库和私有仓库。公开仓库指的是DockerHub,如图7-1所示,它是一个公共的Docker镜像仓库,其中包含大量常用的镜像。私有仓库则是用户自行搭建的,用于存储私有的Docker镜像,例如registry,Harbor。接下来通过三个实验,分别演示registry,Harbor,DockerHub的使用。图7-1DockerHub页面在实际的开发和部署过程中,我们常常需要使用到Docker镜像来构建和运行我们的应用程序。而DockerHub是一个公共的Docker镜像仓库,我们可以在其中找到大量的镜像供我们使用。然而,在某些情况下,我们可能需要自己搭建一个私有的Docker镜像仓库,以便更好地管理和控制我们的镜像。【实验环境】1.本实验基于Centos7.0系统。2.网络需要正常访问DockerHub。【实验步骤】1.拉取registry镜像可以使用DockerHub提供的Docker镜像来搭建一个Docker仓库。通过命令dockerpullregistry拉取官方的registry镜像,具体如图7-2所示。dockerpullregistry图7-2拉取registry镜像2.运行registry容器通过命令dockerrun-d-p5000:5000--nameregistryregistry启动registry,具体如图7-3所示。dockerrun-d-p5000:5000--nameregistryregistry图7-3运行registry容器该命令将在本地的5000端口启动一个容器,并将其命名为registry。3.验证通过命令dockerps检查是否启动成功。如果看到正在运行的registry容器,则说明镜像仓库已经成功启动,具体如图7-4所示。dockerps图7-4查看运行registry容器4.配置Docker客户端为了能够访问到私有仓库,我们需要配置Docker客户端。在Docker客户端的配置文件/etc/docker/daemon.json中添加以下内容,具体如图7-5所示。vi/etc/docker/daemon.json{"insecure-registries":["localhost:5000"]}图7-5daemon.json配置信息重启docker,具体如图7-6所示。systemctldaemon-reloadsystemctlrestartdocker图7-6重启docker5.使用仓库修改镜像名称,具体如图7-7所示。dockertagbusyboxlocalhost:5000/busybox图7-7修改镜像名称推送镜像,具体如图7-8所示。dockerpushlocalhost:5000/busybox图7-8推送镜像本实验在Centos7.0系统上搭建私有Docker镜像仓库registry,通过安装和启动Docker服务,创建并部署私有仓库。实验成功搭建了私有镜像仓库,可以方便地存储和管理自定义的Docker镜像。

实验8Docker公共镜像仓库DockerHub的使用【实验目的】在使用Docker仓库时,需要管理镜像的上传和下载、版本控制以及安全性等。可以使用相关命令和工具来管理Docker仓库。DockerHub是一个集中存储和分享Docker镜像的平台,为开发者提供了方便的镜像管理和共享功能。了解DockerHub的使用方法,有助于提高开发效率和代码复用性。本实验介绍了如何使用DockerHub仓库。通过学习如何搜索、拉取、推送和管理Docker镜像,以及如何创建和管理Docker仓库,帮助用户更好地利用DockerHub提供的功能。【实验环境】1.本实验基于Centos7.0系统。2.网络可以访问DockerHub官网。【实验步骤】1.登录DockerHub如果需要使用DockerHub保存和分享镜像,需要先登录DockerHub,具体如图8-1所示。图8-1DockerHub登录页面2.上传镜像到DockerHub(1)通过命令dockertagbusybox:latestkenken11dasdad/busybox:v1镜像改名,具体如图8-2所示。dockertagbusybox:latestkenken11dasdad/busybox:v1图8-2镜像改名(2)上传镜像到DockerHub,可以使用dockerpush命令将镜像上传到DockerHub。可以在DockerHub上面查看镜像,具体如图8-3和图8-4所示。dockerpushkenken11dasdad/busybox:v1图8-3DockerHub页面查看版本图8-4DockerHub页面查看镜像3.从DockerHub下载镜像可以使用dockerpull命令从DockerHub下载镜像。例如,dockerpullkenken11dasdad/busybox:v1命令会下载一个名为busybox的Docker镜像,具体如图8-5所示。dockerpullkenken11dasdad/busybox:v1图8-5拉取镜像4.从本地中删除镜像可以使用dockerrmi命令删除DockerHub中的镜像。该命令需要指定要删除的镜像的名称或ID。例如,dockerrmibusybox命令将删除一个名为busybox的镜像,具体如图8-6所示。dockerrmidockerpullkenken11dasdad/busybox:v1图8-6删除镜像通过本实验,我们学会了如何使用DockerHub仓库进行镜像的搜索、拉取、推送和管理,以及创建和管理Docker仓库。这些技能可以帮助我们更好地利用DockerHub的功能,提高开发效率和代码复用性。在使用DockerHub时,需要注意镜像的版本控制和安全性。可以使用DockerHub提供的工具来进行版本控制、镜像扫描、安全报告等。还可以使用DockerHub的API来自动化管理和使用Docker仓库。

实验9Docker私有镜像仓库Harbor的安装和使用【实验目的】Harbor是一个开源的私有镜像仓库,可以帮助用户在本地环境中构建、存储和分发Docker镜像。登录界面如图9-1所示。了解Harbor的安装和使用方法,可以帮助用户在企业内部搭建私有镜像仓库,方便镜像管理和保证镜像的安全性。图9-1Harbor界面【实验环境】1.本实验基于Centos7.0系统。2.Harbor版本2.8.2。【实验步骤】1.下载安装包可以在官方网站上下载Harbor的安装包,也可以使用DockerCompose快速部署Harbor。在官方网站https://goharbor.io/下载tar包并解压。如v2.8.2版本,具体如图9-2和图9-3所示。图9-2Harbor官网页面图9-3Harbor下载页面2.配置Harbor进入解压后的目录,修改harbor.cfg配置文件,具体如图9-4所示。viharbor.cfg图9-4修改后的harbor配置文件3.安装docker-compose使用命令yuminstalldocker-compose-y安装docker-compose,具体如图9-5所示。yuminstalldocker-compose-y图9-5安装docker-compose4.安装Harbor进入解压后的目录,执行install.sh脚本安装Harbor。localhost:~/harbor/harbor#./install.sh[Step0]:checkingifdockerisinstalled...Note:dockerversion:20.10.9[Step1]:checkingdocker-composeisinstalled...Note:docker-composeversion:1.18.0[Step2]:preparingenvironment...[Step3]:preparingharborconfigs...preparebasedirissetto/root/harbor/harborErrorhappenedinconfigvalidation...ERROR:root:Error:Theprotocolishttpsbutattributessl_certisnotsetlocalhost:~/harbor/harbor#vimharbor.ymllocalhost:~/harbor/harbor#./install.sh[Step0]:checkingifdockerisinstalled...Note:dockerversion:20.10.9[Step1]:checkingdocker-composeisinstalled...Note:docker-composeversion:1.18.0[Step2]:preparingenvironment...[Step3]:preparingharborconfigs...preparebasedirissetto/root/harbor/harborWARNING:root:WARNING:HTTPprotocolisinsecure.Harborwilldeprecatehttpprotocolinthefuture.PleasemakesuretoupgradetohttpsGeneratedconfigurationfile:/config/portal/nginx.confGeneratedconfigurationfile:/config/log/logrotate.confGeneratedconfigurationfile:/config/log/rsyslog_docker.confGeneratedconfigurationfile:/config/nginx/nginx.confGeneratedconfigurationfile:/config/core/envGeneratedconfigurationfile:/config/core/app.confGeneratedconfigurationfile:/config/registry/config.ymlGeneratedconfigurationfile:/config/registryctl/envGeneratedconfigurationfile:/config/registryctl/config.ymlGeneratedconfigurationfile:/config/db/envGeneratedconfigurationfile:/config/jobservice/envGeneratedconfigurationfile:/config/jobservice/config.ymlGeneratedandsavedsecrettofile:/data/secret/keys/secretkeySuccessfullycalledfunc:create_root_certGeneratedconfigurationfile:/compose_location/docker-compose.ymlCleanuptheinputdir[Step4]:startingHarbor...Creatingnetwork"harbor_harbor"withthedefaultdriverPullinglog(goharbor/harbor-log:v2.4.1)...v2.4.1:Pullingfromgoharbor/harbor-log91519930665a:Alreadyexists06399154ab6b:Pullcomplete2a879cefaa2c:Pullcomplete3fa9b837be90:Pullcomplete33fb19c42260:Pullcomplete5aed8072fa47:Pullcompleteba93b672d93e:Pullcompleted8da53ccaaaf:PullcompleteDigest:sha256:05080f5c23d9d813aa35f17f102d9c605b6d8b542950250d828afd3f44136b7cStatus:Downloadednewerimageforgoharbor/harbor-log:v2.4.1Pullingregistry(goharbor/registry-photon:v2.4.1)...v2.4.1:Pullingfromgoharbor/registry-photon91519930665a:Alreadyexistsd2cdcdcc67c9:Pullcompletee63993176a34:Pullcomplete03b0b0175721:Pullcompletef1b63f393208:Pullcomplete8f6670558d08:PullcompleteDigest:sha256:7fbd8e0309c49ba3adadb1304a0b7876a988ca456054d74b5754f48c4e141077Status:Downloadednewerimageforgoharbor/registry-photon:v2.4.1Pullingregistryctl(goharbor/harbor-registryctl:v2.4.1)...v2.4.1:Pullingfromgoharbor/harbor-registryctl91519930665a:Alreadyexists8dc037d866d1:Pullcomplete549260175762:Pullcomplete7b85e5380f6f:Pullcomplete71e183208b22:Pullcompletec2f78957551c:Pullcomplete20cb0d62a528:PullcompleteDigest:sha256:df18e9b94a5a96106b39a95cf5a96b0b01e9af78e9ab78a41ce270d52b21d517Status:Downloadednewerimageforgoharbor/harbor-registryctl:v2.4.1Pullingpostgresql(goharbor/harbor-db:v2.4.1)...v2.4.1:Pullingfromgoharbor/harbor-db91519930665a:Alreadyexists5be9d6ebaef3:Pullcomplete3383dca80932:Pullcompletea94eb2f868d4:Pullcompletec586fe4fadf8:Pullcomplete43b3a019c715:Pullcomplete023b5954bdc6:Pullcomplete34af0787da3f:Pullcompletebf886315698e:Pullcomplete4be5be8d33ff:Pullcomplete2b5f950c5f93:Pullcompletece20c531e959:Pullcompletefb9260ed3508:PullcompleteDigest:sha256:94cb263172bac2eb23ea0d9cf96f2fc9f166af9d38b9f39796ecb1f09d90402fStatus:Downloadednewerimageforgoharbor/harbor-db:v2.4.1Pullingportal(goharbor/harbor-portal:v2.4.1)...v2.4.1:Pullingfromgoharbor/harbor-portal91519930665a:Alreadyexists13d5ba8d917c:Pullcomplete72a5713783c5:Pullcomplete897acabf0af9:PullcompleteDigest:sha256:2c0b7dfe22fe9d9df8becae2ab156d1725effb0ef23e6e9bd28beb9988aa0779Status:Downloadednewerimageforgoharbor/harbor-portal:v2.4.1Pullingredis(goharbor/redis-photon:v2.4.1)...v2.4.1:Pullingfromgoharbor/redis-photon91519930665a:Alreadyexistsf5ba58eec5c1:Pullcomplete0a542c48469e:Pullcompleteaefd68e14944:Pullcomplete07c82b707a19:PullcompleteDigest:sha256:6698ad0a4eb04dc29f2e5fd219ea6614011bb86a9e42660af1291efcf4c9a2dcStatus:Downloadednewerimageforgoharbor/redis-photon:v2.4.1Pullingcore(goharbor/harbor-core:v2.4.1)...v2.4.1:Pullingfromgoharbor/harbor-core91519930665a:Alreadyexistsfe20ec80180f:Pullcompletec907bdfac371:Pullcomplete5127dd3c28e8:Pullcomplete389370d1b7f2:Pullcomplete4c120ad6395f:Pullcompletefa9bc3726210:Pullcomplete350dd977cbe6:Pullcomplete769b1c950806:Pullcomplete0e9ed7ae3b1f:PullcompleteDigest:sha256:e557bc17b9a70c44717a768b6d404de60a6c1488f4ad4fd033f2001cee7658e5Status:Downloadednewerimageforgoharbor/harbor-core:v2.4.1Pullingjobservice(goharbor/harbor-jobservice:v2.4.1)...v2.4.1:Pullingfromgoharbor/harbor-jobservice91519930665a:Alreadyexists4b10d4608c04:Pullcomplete5821b115e354:Pullcompleteb32b6e2dbcc1:Pullcompletec8b51cb74987:Pullcomplete8870cd08dfb8:PullcompleteCreatingharbor-log...doneStatus:Downloadednewerimageforgoharbor/harbor-jobservice:v2.4.1Pullingproxy(goharbor/nginx-photon:v2.4.1)...v2.4.1:Pullingfromgoharbor/nginx-photon91519930665a:AlreadyexistsCreatingharbor-db...doneCreatingharbor-core...doneStatus:Downloadednewerimageforgoharbor/nginx-photon:v2.4.1Creatingnginx...doneCreatingregistry...Creatingredis...Creatingregistryctl...Creatingharbor-portal...Creatingharbor-db...Creatingharbor-core...Creatingharbor-jobservice...Creatingnginx...✔Harborhasbeeninstalledandstartedsuccessfully.5.使用HarborHarbor的使用和DockerRegistry类似。先使用dockerlogin命令登录Harbor,然后使用dockerpush命令将镜像提交到Harbor。例如,dockerpushmyusername/myimage命令会将本地的myimage镜像上传到Harbor。可以使用dockerpull命令从Harbor下载镜像。例如,dockerpull/library/nginx命令会下载一个名为nginx的Docker镜像。通过本实验,我们学会了如何安装和配置Harbor私有镜像仓库,以及如何使用Harbor进行镜像的构建、存储和分发。使用Harbor可以帮助我们在企业内部搭建私有镜像仓库,提高镜像管理和安全性,方便团队协作和代码复用。

实验10oVirt安装部署【实验目的】某中小型企业的系统管理员,企业目前在传统的物理服务器上运行着一些关键业务应用和服务。随着业务的不断扩张,服务器数量不断增加,而这导致了硬件资源的浪费和管理的复杂性。系统管理员意识到需要一种更高效、灵活且易于管理的解决方案。经过多方调研,系统管理员计划通过引入虚拟化平台来改变传统的服务器部署方式,实现资源的共享和动态分配,以提高硬件利用率和灵活性。在研究了多种虚拟化解决方案后,决定采用oVirt作为企业虚拟化基础设施的核心。目标是通过oVirt搭建一个高可用性的虚拟化集群,以运行企业的各类业务应用,包括Web服务器、数据库服务器和应用服务器等。并希望通过oVirt的管理界面,实现对虚拟机的集中管理和监控,以及快速创建、克隆和迁移虚拟机的能力。同时,为了确保数据的安全性和可靠性,计划将存储节点组织为存储池,从而实现冗余和备份。前期准备工作已做好,包括购置了符合要求的硬件设备和网络设备,并进行了必要的操作系统和网络设置。现在,开始oVirt的安装部署过程,并逐步实现构建企业虚拟化基础设施的目标。【实验环境】本实验基于测试环境。这里需要了解官方生产环境中典型的中小规模环境的安装配置,要求如下。根据规模和负载的不同,部署的具体要求也有所不同。最低配置:•CPU:双核x86_64CPU。•内存:如果未安装数据仓库且现有进程未消耗内存,则需要4GB可用系统RAM。•硬盘:25GB本地可访问、可写的磁盘空间。可以使用RHV引擎历史数据库大小计算器来计算引擎历史数据库大小的适当磁盘空间。•网络接口:1个网络接口卡(NIC),带宽至少为1Gbps。推荐配置:•CPU:一个四核x86_64CPU或多个双核x86_64CPU。•内存:如果未安装数据仓库且现有进程未消耗内存,则需要16GB系统RAM。•硬盘:50GB本地可访问、可写的磁盘空间。•网络接口:1个网络接口卡(NIC),带宽至少为1Gbps。注意:1)所有CPU都必须支持Intel®64或AMD64CPU扩展,并启用AMD-V™或IntelVT®硬件虚拟化扩展。还需要支持NoeXecute标志(NX)。2)所需的最低RAM为2GB。对于集群级别4.2到4.5,oVirt节点中每个虚拟机支持的最大RAM为6TB。对于集群级别4.6到4.7,oVirt节点中每个虚拟机支持的最大RAM为16TB。但是,所需的RAM量根据客户操作系统要求、客户机应用程序要求以及客户机内存活动和使用情况而有所不同。本实验主要思路如下:1、设置国内阿里源。2、然后安装ovirt-engine管理节点。3、安装/添加ovirt主机。实验规划:准备一台oVirt-engine主机,一台oVirt节点主机。oVirt-node支持两种类型的主机:oVirtNodes(oVirtNode)和EnterpriseLinux主机。根据实际环境,可使用一种类型,或同时使用两种类型。迁移、高可用性等功能至少需要两台主机。oVirtNode(oVirtNode)是一个基于EnterpriseLinux的最小操作系统,旨在提供一种简单的方法来设置物理机以充当oVirt环境中的虚拟机管理程序。最小操作系统仅包含计算机充当虚拟机管理程序所需的软件包,并具有用于监视主机和执行管理任务的CockpitWeb界面。我们这里使用第二种,标准基本安装主机,即企业Linux主机。EnterpriseLinux主机基于物理服务器上EnterpriseLinux8.7或更高版本的标准基本安装,并启用了EnterpriseLinuxServer和oVirt存储库。本实验,基于虚拟机软件虚拟节点来完成,我们准备2台机器(测试场景下可以使用虚拟机),分别装好Centos8.5系统(官方推荐oVirt引擎必须在EnterpriseLinux8.7或更高版本上运行,经测试8.5可以,8.2不可以),并配置好hostname和ip地址,例如(192.200.51.xx0)、(192.200.51.xx1)。确保可联网,我们实施在线安装。虚拟主机确保支持和开启嵌套虚拟化(硬件辅助虚拟化)。(1)查看一下IP确保正确。如图10-1所示。(操作对象,通过终端访问)

[root@localhost~]#ifconfig

#如果IP地址不存在,那么一般情况是NetworkManager服务与虚拟机性能优化工具(DHCP功能)冲突,重启一下NetworkManager服务即可正确获取地址。

例如:systemctlrestartNetworkManager图10-1查看IP(2)修改主机名(操作对象通过终端访问)

[root@localhost~]#hostnamectlset-hostname(操作对象通过终端访问)[root@localhost~]#hostnamectlset-hostname(3)DNS设置(操作对象,通过终端访问)确保DNS解析配置正确。nameserver14

[root@localhostyum.repos.d]#vi/etc/resolv.conf

#GeneratedbyNetworkManager

searchcom

nameserver14默认情况下,oVirt的ovirt-engine配置脚本engine-setup会在ovirt-engine计算机上自动创建和配置引擎数据库和数据仓库数据库。要手动设置数据库,请在配置oVirt之前自行准备好本地手动配置的PostgreSQL数据库。【实验步骤】1.设置国内阿里源(操作对象,通过终端访问)下载过程如图10-2所示。因为Centos8的官方源停止维护了,我们更换为国内源。(8.5源)注:可以先查看下,执行dnfrepolist,如果已更换则忽略。#cd/etc/yum.repos.d/&&mkdir-pbk/&&mv*.repobk/#wget-O/etc/yum.repos.d/CentOS-Base.repo/repo/Centos-vault-8.5.2111.repo#yumcleanall#yummakecache图10-2下载阿里源2.安装ovirt-engine管理节点1)安装ovirt对应版本仓库包(操作对象通过终端访问)使用其中一台机器,用作ovirt-engine节点。查看启用的存储库。#dnfrepolist[root@ovirt01~]#dnfrepolistrepoidreponameAppStreamCentOS-8.5.2111-AppStream-baseCentOS-8.5.2111-Base-extrasCentOS-8.5.2111-Extras-安装。这里我们尝试使用阿里源存储库。#dnfinstall-y/ovirt/yum-repo/ovirt-release44.rpm另注:官方oVirt4.4:dnfinstall-y/pub/yum-repo/ovirt-release44.rpm官方oVirt4.5:dnfinstall-ycentos-release-ovirt45[root@localhost~]#dnfinstall-y/ovirt/yum-repo/ovirt-release44.rpm上次元数据过期检查:0:46:52前,执行于20xx年09月19日星期二23时55分17秒。ovirt-release44.rpm37kB/s|21kB00:00依赖关系解决。==============================================================================软件包架构版本仓库大小==============================================================================安装:ovirt-release44noarch-1.el8@commandline21k事务概要==============================================================================安装1软件包总计:21k安装大小:31k下载软件包:运行事务检查事务检查成功。运行事务测试事务测试成功。运行事务准备中:1/1安装:ovirt-release44--1.el8.noarch1/1运行脚本:ovirt-release44--1.el8.noarch1/1验证:ovirt-release44--1.el8.noarch1/1已安装:ovirt-release44--1.el8.noarch完毕!官方给出的仅适用于EnterpriseLinux8上的4.4和4.5的常见问题解决过程:(我们挨个执行了即可)启用javapackages-tools模块。首先把阿里源存储库CentOS-Base.repo中[powertools]项开启。如图10-3所示。[root@localhost~]#cd/etc/yum.repos.d/[root@localhostyum.repos.d]#lsbkCentOS-Base.repoovirt-4.4-dependencies.repoovirt-4.4.repo[root@localhostyum.repos.d]#viCentOS-Base.repo如下图,把阿里源存储库CentOS-Base.repo中[powertools]项下的enable=0改为enable=1。修改后执行。#dnfmodule-yenablejavapackages-tools图10-3开启阿里源启用pki-deps模块。#dnfmodule-yenablepki-deps启用postgresql模块的版本12。#dnfmodule-yenablepostgresql:12启用模块的2.3版本mod_auth_openidc。#dnfmodule-yenablemod_auth_openidc:2.3启用nodejs模块的版本14。#dnfmodule-yenablenodejs:14同步已安装的软件包以将其更新到新的可用版本。#dnfdistro-sync--nobest-y2)安装和配置ovirt-engine包(操作对象通过终端访问)安装ovirt-engine包和依赖项查看启用的存储库。#dnfrepolist[root@localhostyum.repos.d]#dnfrepolist仓库id仓库名称AppStreamCentOS-8.5.2111-AppStream-PowerToolsCentOS-8.5.2111-PowerTools-baseCentOS-8.5.2111-Base-extrasCentOS-8.5.2111-Extras-ovirt-4.4LatestoVirt4.4Releaseovirt-4.4-centos-advanced-virtualizationCentOS-8-AdvancedVirtualizationovirt-4.4-centos-ceph-pacificCentOS-$stream-CephPacificovirt-4.4-centos-gluster8CentOS-8-Gluster8ovirt-4.4-centos-nfv-openvswitchCentOS-8-NFVOpenvSwitchovirt-4.4-centos-openstack-victoriaCentOS-8-OpenStackvictoriaovirt-4.4-centos-opstoolsCentOS-8-OpsTools-collectdovirt-4.4-centos-opstools-vaultCentOS-8-OpsTools-collectd-vaultovirt-4.4-centos-ovirt44CentOS-8-oVirt4.4ovirt-4.4-copr::sac:gluster-ansibleCoprrepoforgluster-ansibleownedbysacovirt-4.4-copr::sbonazzo:EL8_collectionCoprrepoforEL8_collectionownedbysbonazzoovirt-4.4-epelExtraPackagesforEnterpriseLinux8-x86_64ovirt-4.4-virtio-win-latestvirtio-winbuildsroughlymatchingwhatwillbeshippedinupcomingRHEL升级系统包到最新。#dnfupgrade-y--nobest注:如果执行过程源报错,重新替换下源,再次执行。#cd/etc/yum.repos.d/&&mkdir-pbk1/&&mvCentOS-Linux-*bk1/#wget-O/etc/yum.repos.d/CentOS-Base.repo/repo/Centos-vault-8.5.2111.repo#yumcleanall#yummakecache#dnfupgrade-y--nobest安装。如图10-4所示。#dnfinstall-yovirt-engine图10-4安装ovirt-engine配置oVirt-engine运行engine-setup命令开始配置oVirt引擎。#engine-setup--accept-defaults注:本实验中,我们除了配置Engineadmin帐号的密码处需要输入外,比如Sangfor123,其它都采用默认项直接回车即可。[root@ovirt01yum.repos.d]#engine-setup--accept-defaults[INFO]Stage:Initializing[INFO]Stage:EnvironmentsetupConfigurationfiles:/etc/ovirt-engine-setup.conf.d/10-packaging-jboss.conf,/etc/ovirt-engine-setup.conf.d/10-packaging.confLogfile:/var/log/ovirt-engine/setup/ovirt-engine-setup-20230804130426-e6hr5p.logVersion:otopi-1.9.6(otopi-1.9.6-1.el8)[INFO]Stage:Environmentpackagessetup[INFO]Stage:Programsdetection[INFO]Stage:Environmentsetup(late)[INFO]Stage:Environmentcustomization--==PRODUCTOPTIONS==--ConfigureCinderlibintegration(Currentlyintechpreview)(Yes,No)[No]:ConfigureEngineonthishost(Yes,No)[Yes]:Configuringovirt-provider-ovnalsosetstheDefaultcluster'sdefaultnetworkprovidertoovirt-provider-ovn.Non-DefaultclustersmaybeconfiguredwithanOVNafterinstallation.Configureovirt-provider-ovn(Yes,No)[Yes]:ConfigureWebSocketProxyonthishost(Yes,No)[Yes]:*Pleasenote*:DataWarehouseisrequiredfortheengine.Ifyouchoosetonotconfigureitonthishost,youhavetoconfigureitonaremotehost,andthenconfiguretheengineonthishostsothatitcanaccessthedatabaseoftheremoteDataWarehousehost.ConfigureDataWarehouseonthishost(Yes,No)[Yes]:ConfigureVMConsoleProxyonthishost(Yes,No)[Yes]:ConfigureGrafanaonthishost(Yes,No)[Yes]:--==PACKAGES==--[INFO]Checkingforproductupdates...[INFO]Noproductupdatesfound--==NETWORKCONFIGURATION==--HostfullyqualifiedDNSnameofthisserver[]:[WARNING]FailedtoresolveusingDNS,itcanberesolvedonlylocallySetupcanautomaticallyconfigurethefirewallonthissystem.Note:automaticconfigurationofthefirewallmayoverwritecurrentsettings.DoyouwantSetuptoconfigurethefirewall?(Yes,No)[Yes]:Thefollowingfirewallmanagersweredetectedonthissystem:firewalldFirewallmanagertoconfigure(firewalld):[ERROR]InvalidvalueFirewallmanagertoconfigure(firewalld):firewalld[INFO]firewalldwillbeconfiguredasfirewallmanager.--==DATABASECONFIGURATION==--WhereistheDWHdatabaselocated?(Local,Remote)[Local]:SetupcanconfigurethelocalpostgresqlserverautomaticallyfortheDWHtorun.Thismayconflictwithexistingapplications.WouldyoulikeSetuptoautomaticallyconfigurepostgresqlandcreateDWHdatabase,orprefertoperformthatmanually?(Automatic,Manual)[Automatic]:WhereistheEnginedatabaselocated?(Local,Remote)[Local]:Setupcanconfigurethelocalpostgresqlserverautomaticallyfortheenginetorun.Thismayconflictwithexistingapplications.WouldyoulikeSetuptoautomaticallyconfigurepostgresqlandcreateEnginedatabase,orprefertoperformthatmanually?(Automatic,Manual)[Automatic]:--==OVIRTENGINECONFIGURATION==--Engineadmin

温馨提示

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

评论

0/150

提交评论