windows容器在cloudfoundry上的实现与实践

264 阅读4分钟
原文链接: mp.weixin.qq.com

CloudFoundry 平台不仅对Linux容器进行了实现与支持,并且对Windows容器也能进行支持和使用,这样在一定程度上极大的方便了开发人员的使用,如使用.net FrameWork 开发BS结构的。下面介绍如何在CloudFoundry上实现windows容器的支持,并使用其发布.net FrameWork应用程序。

依赖说明

教程主要基于VMware Workstation进行Stemcell的制作,主要依赖如下:

  • VMware Workstation 14 pro

  • ovftool(镜像打包成stemcell是需要使用,需要把其加入到环境变量中)

  • stembuild

  • OpenSSH-Win64

  • BOSH PS Modules and BOSH Agent (1709.7 tag版本)

一、创建Windows server 2016 虚拟机

首先,我们需要下载好Windows server 2016 的官方ISO镜像,即Windows Server version 1709 ,镜像可以在MSDN或相关镜像网站下载,下面是创建虚拟机的主要流程:

  1. 在新建虚拟机向导中:选择自定义(高级)

  2. 硬件兼容性:选择Workstation 10.x

  3. 安装客户机操作系统:选择稍后安装操作系统

  4. 选择客户机操作系统: Microsoft Windows -> Windows Server 2016

  5. 命名虚拟机:为虚拟机起一个名称,并配置存储虚拟机文件的路径

注意:选择的安装配置,硬盘最好空余空间比较大

  1. 固件类型: BIOS

  2. 处理器配置: 根据实际情况进行配置,不会影响后续再CloudFoundry中的使用

  3. 虚拟机内存:根据实际情况进行配置,不会影响后续再CloudFoundry中的使用

  4. 网络类型:NAT

  5. I/O控制器类型:LSI Login SAS

  6. 磁盘类型: SCSI

  7. 选择磁盘: 新建磁盘

  8. 磁盘大小:最少需要设置128G,并需要选择##将虚拟磁盘存储为单个文件

  9. 选择磁盘文件:略

  10. 已准备好创建虚拟机:

    1. 选择自定义硬件

    2. 在CD/DVD中,选中加载 Windows Server version 1709的ISO镜像,并设置打开电源连接

  11. 打开虚拟机电源

  12. 在安装界面中,选择 Windows Server Standard

  13. 语言之类的,默认下一步就OK。

  14. 选择自定义安装,随后一直走下去,即可安装完成。

  15. 安装重启后,选择上放的虚拟机,并点击安装vm tools。

  16. 随后,在命令行中,输入 cd d:\\.随后输入  setup64 .exe.即可一路按下一步安装,重启后声响

注意:vm tools中的安装界面可能在命令行界面后面,可以移动让其显示。

二、安装Windows 更新

  1. 在命令行中,运行 **SConfig**命令,随后,选择6:Download and Install Updates

  2. 在弹出的窗口中,选择(A)ll updates

  3. 安装完后,重启电脑完成更新

三、安装CF依赖库与其他必须软件

1. 下载依赖包

在windows server 2016 的stemcell制作中,bosh-psmodulesagent这两个依赖是必须要安装的,我们可以从下面地址来进行下载 BOSH PS Modules and BOSH Agent (1709.7 tag版本)

2. 依赖安装

  1. 复制bosh-psmodules.zip包到虚拟机中,并把起文件解压到 C:\ProgramFiles\WindowsPowerShell\Modules中 

zip包解压命令为: Expand-Archive

  1. 安装CloudFoundry Diego Cell,如下:

首先,在命令行执行 powershell,进入powershell命令行,随后执行以下命令

                    
  1. Install-CFFeatures (执行完后需重启电脑)

  2. Protect-CFCell

  1. 安装Bosh Agent

复制agent.zip包到虚拟机中,随后在命令行中执行以下命令:

  1. Install-Agent -Iaas vsphere -agentZipPath  <path-to-agent.zip>

path-to-agent.zip为agent.zip的绝对地址

  1. 安装OpenSSH

复制OpenSSH-Win64.zip包到虚拟机中,并把其放到 c:\provision\下。

随后执行以下命令:

  1. Install-SSHD -SSHZipFile 'C:\provision\OpenSSH-Win64.zip'

注意:到此,CloudFoundry的依赖已经安装完成,如果需要安装其他库或依赖,可在此基础上自行添加

四、 制作Stemcell

由于Windows的镜像,通常会比较大,超过10GB,因此,我们需要通过一些命令来为系统进行瘦身。

首先,进入powershell命令行。

  1. 执行 Optimize-Disk命令,运行 dism清理非必须的文件

  2. 执行 Compress-Disk命令

通过上述两步,我们就已经把系统进行了简单的瘦身,下面开始进行stemcell的制作

  1. 关闭虚拟机。

  2. 进入Windows Server 虚拟机文件的目录,如 e:\vms\bosh-windows2016

  3. 执行以下命令,生成stemcell

  1. stembuild -vmdk "e:\vms\bosh-windows2016\vm.vmdk" --version "1709.7" --os "2016"

命令执行完,则会在命令执行的目录下,生成bosh-stemcell-1709.7-vsphere-esxi-windows2016-go_agent.tgz文件

五、部署并使用Windows容器

下面开始进行windows容器的部署与使用

  1. 上传 bosh-stemcell-1709.7-vsphere-esxi-windows2016-go_agent.tgz 到Bosh中,如下

  1. bosh -e my-bosh upload-stemcell bosh-stemcell-1709.7-vsphere-esxi-windows2016-go_agent.tgz

  1. 更新cf部署,在部署的命令中,添加 -o cf-deployment/operations/windows2016-cell.yml进行组件的更新,更新完后,windows容器的支持即部署成功

  2. 使用Windows容器,发布一个*.net FrameWork * 程序(程序可通过Visual Studio来生成ASP.NET Web应用程序生成简单的示例)到平台中,如下:

  1. cf push testnet -s windows2016 -p Publish.zip -b hwc_buildpack

通过上述的命令,即可访问生成的url,来验证程序是否发布成功。

六、 依赖软件下载说明

相关依赖软件,可通过在公众号回复1来获取