VMware集群应用部署之--部署vSphere存储插件支持DOCKER持久化

本文深入解析vSphere Docker卷服务(VDVS),展示如何利用VDVS在vSphere环境中运行有状态容器,实现跨主机的数据持久化。涵盖VDVS的主要功能、基本原理、安装步骤及持久化验证过程。

      利用docker快速部署无状态业务是非常便利的操作,但是部署类似数据库等需要持久保存数据的应用就需要将容器保存数据的卷以共享存储的形态挂接在容器中,如果直接将本地存储磁盘挂接在容器中,如果运行容器的机器出现故障,在另外机器上启动的容器无法访问原容器挂接的存储资源导致业务失败。

      VMware的vSphere有设计专用于支持Docker的vSphere Docker卷服务-VDVS,架构如下图所示:

图片

vSphere Docker Volume Service技术支持在vSphere环境中运行由所选存储技术支持的有状态容器。VDVS与VMWare的成熟存储技术配合使用,易于从最终用户的角度安装和使用,同时保持vSphere管理员的可见性和控制。

VDVS的一些主要功能是:

  • 企业级存储:您可以将VDVS与经过验证的企业级技术结合使用,例如VMWare vSAN,VMFS,NFS等。
  • 安全性和RBAC:vSphere管理员可以管理一组主机或数据中心上的基础主机上的安全性和访问控制。
  • 易于使用:它与其他docker API一样易于使用,从最终用户的角度来看,不需要额外的配置等。
  • Docker兼容性:vSphere Docker Volume Service兼容100%Docker,并与Docker Swarm集成,以扩展Swarm提供的高可用性功能
  • 存储策略管理:vSphere Docker Volume Service将vSphere的高级存储功能(如策略管理)引入Docker生态系统。

 一、vSphere支持docker持久化的基本原理

用于vSphere的新Docker卷驱动程序由两部分组成:

第一部分是安装在Docker主机(VM)内部的vSphere Docker卷插件,允许您实例化新的Docker卷。

第二个是安装在ESXi Hypervisor主机中的vSphere Data Volume Driver,它将处理VMDK创建以及Docker Volume请求到Docker主机的映射。

如果ESXi主机上有共享存储,则可以在一个ESXi主机上创建一个VM,创建一个Docker Volume,并在另一个ESXi主机上安装完全不同的VM,安装完全相同的Docker Volume。下图是帮助说明构成适用于vSphere的Docker Volume Driver的不同组件的图表。

二、安装vSphere支持docker插件操作实施步骤

1、实验条件准备

  • vSphere ESXi 6.0+,我使用的是ESXi6.7
  • ESXi主机的vSphere存储(VSAN,VMFS或NFS)(多ESXi主机支持所需的共享存储),我的共享存储是软件模拟的iSCSI

  • 运行Docker 1.9+的Docker主机(VM),我创建了3台基于centos7的虚拟机,安装的是docker-ce 18.09

具体操作步骤需要注意流程:首先在ESXi上安装对应的VIB插件,然后重启ESXi的hostd服务使VIB插件生效,然后在到对应安装DOCKER的VM上安装docker插件,顺序不要搞反了。

2、ESXi安装插件操作步骤

a、基于VUM的VIB安装

VDVS的ESXi组件以脱机库的形式提供,可以将最新版本下载为ZIP存档

下载VIB捆绑包作为zip格式后,使用以下步骤使用VUM执行安装。

  1. 转到更新管理器选项卡中的管理视图
  2. 使用import zip选项导入zip包。
  3. 创建基线并包含zip包。
  4. 扫描您的主机与基线。
  5. 修复主机。

b、基于ESXi命令行安装VIB

VDVS的ESXi组件以VIB的形式提供。VIB代表vSphere安装捆绑包。在概念层面,VIB类似于tarball或ZIP存档,因为它是打包到单个存档中以便于分发的文件集合。

登录ESXi主机并在ESXi上下载最新版本的VDVS驱动程序VIB。假设您已在/ tmp位置下载了VIB,则可以运行以下命令将其安装在ESXi上。您将需要ESXi 6.0或更高版本

esxcli software vib install -v /tmp/vmware-esx-vmdkops-0.12.ccfc38f.vib
Installation Result
   Message: Operation finished successfully.
   Reboot Required: false
   VIBs Installed: VMWare_bootbank_esx-vmdkops-service_0.12.ccfc38f-0.0.1
   VIBs Removed:
   VIBs Skipped:

注意:要在ESX主机上使用admin命令集,请在安装vib后重新启动hostd。 /etc/init.d/hostd restart

 

3、虚拟机安装docker插件操作步骤

VDVS插件可以像任何docker插件安装一样安装在Linux Docker主机上。您将需要VM上的docker版本17.06.1或更高版本。在大型节点池中,您可以通过配置管理工具(如Ansible / Salt)或使用远程shell会话将插件安装推送到多个VM。插件的安装非常简单,我们将逐步完成安装/卸载,启用和验证插件安装的步骤。

docker上执行下面的命令即可。

docker plugin install --grant-all-permissions --alias vsphere vmware/vsphere-storage-for-docker:latest

docker plugin install --grant-all-permissions --alias vsphere vmware/vsphere-storage-for-docker:latest
latest: Pulling from vmware/vsphere-storage-for-docker
f07d34084e57: Download complete
Digest: sha256:e1028b8570f37f374e8987d1a5b418e3c591e2cad155cc3b750e5e5ac643fb31
Status: Downloaded newer image for vmware/vsphere-storage-for-docker:latest
Installed plugin vmware/vsphere-storage-for-docker:latest

 安装成功后执行docker plugin ls查看安装效果如下。

  • 如果需要,您可以启用或禁用插件
# docker plugin disable vsphere
vsphere
~# docker plugin ls
ID                  NAME                DESCRIPTION                           ENABLED
831fd45343af        vsphere:latest      VMWare vSphere Docker Volume plugin   false

~# docker plugin enable vsphere
 vsphere
~# docker plugin ls
ID                  NAME                DESCRIPTION                           ENABLED
831fd45343af        vsphere:latest      VMWare vSphere Docker Volume plugin   true
  • 最后从给定的Docker主机中删除插件:
# docker plugin rm vsphere
vsphere
~# docker plugin ls
ID                  NAME                DESCRIPTION         ENABLED

三、虚拟机上通过docker使用vsphere共享资源实现持久化验证步骤

1、创建docker-swarm集群,并在集群中每台机器上安装docker支持vsphere的插件

2、 在集群内任意一台机器上创建一个docker的共享卷

docker volume create --driver=vsphere --name=vol1 -o size=2gb

创建完毕后通过docker volume ls查看是否创建成功。

还可以通过查看vsphere在虚拟机上的日志文件来进一步观察docker与vsphere文件系统交互的详细信息,

/var/log/vsphere-storage-for-docker.log

 

可以通过docker volume inspect vol1 查看该卷的详细信息,默认挂载路径是/mnt/vmdk/vol1/,设置该卷的大小为2G,实际分配占用105M大小,改卷在vsphere上是精简置备模式。

下面进入vpshere中显示对应的实际存储位置及文件,对照上面的内容可以有更加直观的认识。

 

3、 在集群1号机器上启动一个容器挂载vol1卷,进入容器在对应目录写入新文件

 docker run --rm -it -v vol1:/mnt/volume1 busybox

 上面一张图在mysql-cloud1主机上挂载了vol1卷,下面把mysql-cloud1上的容器退出,在mysql-cloud3上挂载vol1卷,看刚刚在mysql-cloud1上创建的helloworld文件是否存在,如果存在则证明跨主机容器数据共享成功。

通过下图显示,mysql-cloud1-3三台虚拟机在vsphere集群中实际部署在三台不同的物理主机上,vsphere实现了跨主机支持docker写入共享存储的功能,对开发人员来说vsphere集群对其是透明状态。 

 四、总结

1、docker容器持久化必须要把数据保存在共享存储中,这个共享存储是相对于ESXi主机不是相对于虚拟机来说的;

2、也可以不通过vsphere插件实现共享存储,可以在网络中实现NFS、ceph等网络共享存储方式实现docker的持久化;

3、通过ESXi主机内置的python脚本也可以查询已创建的Docker卷列表

/usr/lib/vmware/vmdkops/bin/vmdkops_admin.py volume ls -c 'volume','datastore','capacity','used','attached-to','created-by
','created'

4、这种模式不支持两台机器同时共享一个卷,也就是说如果vol1在某一台主机上加载后,其它主机无法再次加载只能等已经加载的主机退出加载后 其它主机才能加载,否则会报错,如下图:

《企业级 VMware vSphere 6.7虚拟化技术配置与管理》课程共分为“上集”和“下集”两部分,本套视频为“上集”部分,从零基础讲起,由浅入深,是虚拟化入门与提高学习推荐课程。 通过本课程学习,可以全面、深入、系统掌握vSphere产品的规划、设计、安装、配置、管理等相关技能。结合课程实战,深入理解软件定义计算、存储、网络相关概念和运维技能。 《企业级 VMware vSphere虚拟化技术配置与管理》上集部分具体课程章节如下。 第1章 《vSphere技术基础》主要内容本章我们从理论上描述了虚拟化技术。第一部分重点讲解了什么是虚拟化技术;什么是vSphere。第二部分重点讲解了vSphere的设计思想,从虚拟化层、管理层、接口层进一步展开分析,使从业学习人员从技术层面对VMware vSphere进行深层次学习。 第2章 《VMware ESXi 安装和设置》主要内容本章我们重点讲解了两部分内容,第一部分主要讲解了安装ESXi程序的准备工作及安装过程。第二部分主要讲解了ESXi服务器的基本设置。这些内容是成为VMware工程师的必备技能,也是基础要求,希望各位朋友认真学习,踏实实践。 第3章 《vSphere Host Client管理单台ESXi主机》主要内容本章我们主要讲解了通过vSphere Host Client管理单台ESXi主机相关技能。包括vSphere Host Client的版本情况,基本理论知识;结合理论知识,重点给大家演示了使用vSphere Host Client对ESXi主机进行管理、对虚拟机进行管理、对网络进行管理、对存储进行管理等内容。操作内容比较多,希望朋友们认真理解理论知识的同时,踏实做好每一个实验,用实验检验理论,通过理论指导实践。 第4章 《vCenter Server 安装和设置》主要内容本章我们从理论上讲解了vCenter Server的安装类型、安装要求、安装分类、安装涉及到的组件和服务。在理论的基础上,我们分类分步进行了各种模型的构建,这些构建模型包括:* Windows环境部署具有嵌入式PSC的vCenter Server;* Windows环境部署具有外部PSC和外部SQL Server数据库的vCenter Server;* Linux环境部署具有嵌入式PSC的VCSA;* Linux环境部署具有外部PSC的VCSA。本章内容理论丰富,实验详细。希望朋友们认真学习理论说明,跟做章节中涉及的每一个实验,边看边做边总结。最终能够形成自己的知识。注释:PSC:亦指Platform Services ControllerVCSA:亦指vCenter Server Appliance 第5章 《vCenter Server基本配置和主机管理》 主要内容本章我们从理论上讲解了vSphere在数据中心的物理结构、软件组件、客户端使用界面、受管清单对象、可选vCenter Server组件和vCenter Server插件。在理论的基础上,详细介绍了vSphere Client的基本使用,包括对vCneter Server的管理操作、常规配置、高级属性定义、群集对象操作、vSphere标记和属性等。 第6章 《VMware vSphere 6.7 网络配置与管理》 主要内容软件定义网络,是虚拟化技术中的重要知识点。本章我们主要讲解了VMware vSphere网络的配置与管理。通过大量的理论和图例详细阐述了虚拟化环境中的网络模型和工作流程。课程中,我们对VMware vSphere虚拟化环境中的标准交换机和分布式交换机进行了分类讲解,并详细演示了涉及到的每一个实验。虽然理论和实践都做了比较详尽讲解,但对于初学者仍有一点的难度。克服困难的最好方式就是多做实验,验证理论。可谓实验三遍,其义自见。 第7章 《VMware vSphere 6.7 存储配置与管理》 主要内容本章我们通过理论结合实践的方式讲解了 VMware ESXi和 VMware vCenter Server提供的虚拟化和软件定义的存储技术。这些技术细节包括:将ESXi与iSCSI SAN配合使用;为VMware ESXi配置iSCSI共享存储;管理虚拟化环境中的存储设备;使用虚拟闪存读取缓存;在虚拟化环境中使用数据存储;虚拟化环境中的多路径和故障切换技术;裸设备映射技术;存储置备和空间回收技术;管理存储I/O资源。大家在学习过程中,可以以此为参考,构建自己的环境,逐步熟练课程中的术语和操作技能。 第8章 《VMware vSphere 6.7 虚拟机配置与管理》 主要内容本章我们对VMware vSphere 环境中部署虚拟机、部署 OVF 和 OVA 模板、使用内容库、配置虚拟机硬件、配置虚拟机选项、使用 vSphere vApp 管理多层应用程序、编辑虚拟机启动和关机设置等做了全面介绍。希望大家在掌握理论的基础上,参照课程实践部分,独立完成各个实验操作。 后续:在理论知识扎实,实践操作到位的情况下,《企业级 VMware vSphere虚拟化技术配置与管理》下集将深入讲解vSphere环境下的vMotion、DRS、High Available(HA)、fault tolerance(FT)、性能监控、安全备份等高可用性内容,敬请学习提高。 企业级 VMware vSphere 6.7虚拟化技术配置与管理(上集)视频课程:https://edu.youkuaiyun.com/course/detail/35162企业级 VMware vSphere 6.7虚拟化技术配置与管理(下集)视频课程:https://edu.youkuaiyun.com/course/detail/35171
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值