VMware NSX Application AirGap 通关攻略

08 Sep 2023

本文介绍如何在离线环境下,搞定 NSX Application Platform。难度指数极高,请耐心、细心。

证书

离线环境最重要最麻烦的,就是证书,需要自行搞定从 CA 到服务器证书的一整套操作。建议首先学习一下 PKI 的基本理论。

根 CA

为了简单起见,建议用虚拟机先装个 Windows Server 2022,开启证书管理功能,生成一个根 CA。因为目前这种方式生成出来的根 CA 兼容性最好。

将 Windows 生成的根 CA 保存下来,这是个 p12 的二进制格式。用证书工具将其中的证书和 key 以文本形式拆出来。

(以上内容后续将提供具体命令)

VMCA

VMCA 是 vCenter 使用的中间 CA。SSH 以 root 用户登录 vCenter,执行 shell 切换到命令行,然后执行:

/usr/lib/vmware-vmca/bin/certificate-manager

ESXi 主机 CA

在 vCenter 里,右键点选 ESXi 主机,Certificates,然后依次 Refresh CA Certificates、Renew Certificate。

这里有一个坑,就是可能会在刷新证书时报一个 Start time 的错误。这是因为 VMCA 在生成主机证书时,会把起始时间减去一天,如果你的 VMCA 刚刚签署,那么有效期就是今天。这时要生成一个以昨天为开始日期的证书,就会报错。

解决办法有两个,一是修改这个提前的时间,需要更改高级 vCenter 设置,请自行搜索。还有就是硬等一天。

准备容器基础设施

注册表

注册表建议使用 Harbor。按照官方指南装好 Harbor 后,要换成用自己根 CA 签出来的 Harbor https 证书,否则后面是不能连这个镜像库的。

下载 napp 的 tar 包,找一个装了 Docker 的服务器,或者就本机的 Docker Desktop 也行,但是要保证起码 30G 的可用空间。

K8s

安装 K8s 集群,版本一定要符合 napp 要求,不要超过 napp 要求的最高版本(第三位修订版本无所谓)。需要有一个控制节点和三个工作节点。工作节点内存至少要 32G,存储空间可不必那么大。

K8s 的每个节点都必须要加入自己做的根 CA,否则后面也无法连镜像库。

网络插件不可以用 Weave,建议用 Antrea,否则后续负载均衡器分配地址会有问题。

负载均衡器用 Metallb。地址池给 5 个地址即可,分别是 napp 服务地址(contour),Kafka 三个节点地址以及 Kafka 服务地址。

DNS

给两个 DNS 名,一个是 IS 域名,解析到上面地址池的第一个地址,一个是 MS 域名,解析到上面地址池的第五个地址(最后一个地址)。