VMware NSX Data Center 3.2版本之后有一部分组件将会以容器的方式来部署,本文会说明相关的部署方式。我们以Tanzu Community Edition(TCE)为基础开始后续的部署工作,没有TCE的可以看下这里。
VMware Tanzu社区版在VMware vSphere部署
首次翻看NSX Application Platform (NAPP)的安装说明会觉得头很大,架构很复杂,又是Tanzu又是AVI,典型的结构如下图。为了能最简单地用上NSX的附加功能,本文将以最精简的架构来部署NAPP。
1. 部署Harbor私有容器仓库(可选)
VMware提供了两个NAPP的容器仓库,如果你的环境可以访问internet且速度还可以的话就不需要部署私有的Harbor了,以下为地址。
Helm Repository: https://projects.registry.vmware.com/chartrepo/nsx_application_platform
Docker Registry: projects.registry.vmware.com/nsx_application_platform/clustering
如果不满足上述条件,则需要部署独立的Harbor容器仓库(用其他Registry产品也是可以的)。Harbor是VMware开发的免费的container registry,其本身运行需要docker和docker-compose,我们使用Debian 11来部署Harbor仓库(其他发行版Linux命令略有不同)。
首先安装docker和docker-compose
sudo apt update sudo apt install -y curl docker.io docker-compose sudo usermod -aG docker $USER newgrp docker
下载Harbor安装程序,这里我们选择安装在/opt/harbor下,NAPP容器都比较大,请保证该路径至少有100G以上的空间。本文使用的是v2.5.4版本。
HARBOR_BUNDLE_DIR=/opt/harbor sudo mkdir -p $HARBOR_BUNDLE_DIR HARBORVER=$(curl -sL https://api.github.com/repos/goharbor/harbor/releases | jq -r ".[0].name") wget https://github.com/goharbor/harbor/releases/download/$HARBORVER/harbor-offline-installer-$HARBORVER.tgz sudo tar -xvzf harbor-offline-installer-$HARBORVER.tgz -C /opt cd /opt/harbor cp harbor.yml.tmpl harbor.yml
然后编辑harbor.yml文件,修改hostname、certificate、private_key、harbor_admin_password、data_volume等字段,改为需要的值。其中certificate和private_key必须是公网CA签发的证书。
具体可以参考以下链接:
https://goharbor.io/docs/2.5.0/install-config/configure-yml-file/
完成以后使用以下命令开始安装Harbor
cd /opt/harbor sudo ./install.sh --with-chartmuseum
看到下图后代表安装完成
之后可以使用以下命令启动或停止harbor
cd /opt/harbor # 停止 sudo docker-compose stop # 启动 sudo docker-compose start
然后使用浏览器访问harbor页面,https://<Harbor FQDN>,用户名admin,密码看下harbor.yml中harbor_admin_password字段
登录后点击projects里的New Project按钮
Project name这里使用napp,Access Level的public需要勾选
2. 导入NSX Application Platform组件到Harbor
导入NAPP组件需要满足以下先决条件:
Upload the NSX Application Platform Docker Images and Helm Charts to a Private Container Registry
其中官方文档漏掉了helm的先决条件,需要先装好helm,本文使用helm v3.9.2
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash # 确认helm版本 helm version
随后解压下载的NAPP组件,这里采用3.2.1版本,如是其他版本则调整对应文件名。由于包文件比较大,且会导入大量docker image,请确保有足够空间解压。作者采用了单独的导入vm,没有在harbor服务器操作,导入后便可将导入vm清理已节省空间。
tar xvzf VMware-NSX-Application-Platform-3.2.1.0.0.19800104.tgz
解压完毕后(时间较长),修改upload_artifacts_to_private_harbor.sh文件,修改以下三个字段。
DOCKER_REPO 对应Harbor服务器FQDN DOCKER_USERNAME 对应Harbor管理员用户名 DOCKER_PASSWORD 对应Harbor管理员密码
修改完毕执行导入
chmod +x upload_artifacts_to_private_harbor.sh ./upload_artifacts_to_private_harbor.sh
导入过程比较漫长,最后出现一堆{“saved”:true}字样时表示导入成功了。
再看下Harbor,repositories和helm charts都已有内容了。