从 OpenShift 4.5 开始,支持可以通过 IPI 方式部署 OpenShift 到 vSphere 环境。有了 IPI 之后,大大简化了用户的安装部署流程,用户只需要准备很少量的基础服务,就可以完成安装部署,而不像 UPI 那样需要我们准备各种基础服务例如 FTP,Haproxy 等。
下面总结本次安装过程以及遇到的问题
参考文档:https://docs.openshift.com/container-platform/4.5/installing/installing_vsphere/installing-vsphere-installer-provisioned.html
1. 环境准备
ESXi 6.5 、vCenter 6.5、DHCP、DNS(vSphere 7 经过测试也可以)
环境 datastore 要有至少 800G 的可用存储空间,推荐 1T。内存建议环境中有 72 G 可用内存。
关于硬件要求是根据已装好的环境得出,master 机器分配了 16G 内存, worker 分配 8G 内存。IPI 安装结束后,环境有 3 个 master 和 3 个 node。因此请保证环境中的内存可用量为 72G,每个vm都会被分配120G硬盘,并且分配方式为 “厚制备写零”(Thick provisioned, lazily zeroed),因此要保证安装成功至少要确保有 800G的可用磁盘空间
DHCP 服务,可以正常分配 IP 地址就行,不用做 TFTP
DNS:要保证可以解析以下记录
vcenter FQDN
API.<cluster_name>.<domain_name>
*.apps.<cluster_name>.<domain_name>
全程需要连接互联网
vSphere 的账户权限,必须满足以下要求
2. 开始安装
上面的准备工作做好之后,先装一个 Linux 的机器,本次用的是 RHEL 7,测试 DNS
看到解析都正常之后,下载 openshift-install 工具 和 pull-secret 文件
下载 openshift-install 工具
# wget https://mirror.openshift.com/pub/openshift-v4/clients/ocp/latest/openshift-install-linux.tar.gz
# tar xvf openshift-install-linux.tar.gz
通过 https://cloud.redhat.com/openshift/install/pull-secret 下载 pull-secret 文件
创建 ssh-key
启动 ssh agent,并把自己的 private key 放到里面去
下载 vCenter 的 CA 证书到你的环境
下载后解压缩,如果是 Linux 系统,请把 Lin 目录下的 ca 证书,复制到 /etc/pki/ca-trust/source/anchors/ 目录
执行命令,信任证书
准备完毕后,执行下面的命令,开始应答式安装过程
./openshift-install create cluster --dir ./logs --log-level=info
应答方式选择,
1. public key 位置
2. 安装的平台 vsphere
3. vcenter 的 FQDN,必须要写 FQDN,写 ip 会报证书错误
4. password 写 vcenter 的密码
5. Default Datastore:选择 vsphere 存储
6. VIP for API:写 api 的 vip
7. VIP for ingress 写 router 的 vip
8. Base domain:写 base domain,例如我环境是 ocp4.example.com,那么 base domain 就是 example.com
9. Cluster name:写 cluster name 例如我环境是 ocp4.example.com,那么 cluster name 就是 ocp4
10. pull secret 写 pull secret 完整内容,复制粘贴过来就好
命令执行后等待开始安装过程,如下图所示,开始下载 vsphere 用的 ova 模板
由于执行安装命令的 console 看不到任何的日志信息,我们可以再开一个 terminal 查看安装目录中 log 目录下的装配日志,如下图,此时可以看到正在导入 ova 镜像
审查安装日志的同时,在 vsphere 中也可以看到,模板下载完毕后会开始克隆虚拟机创建 bootstrap、 master 0 - 2
等待一会可以看到 bootstrap 和 control plane 的机器已经启动了
此时,可以 ssh 到 api 的 vip 上,在安装过程中 api 的 VIP 会在 bootstrap 这个机器上。
通过 ssh,登录到 bootstrap机器,可以查看 bootstrap 过程
Bootstrap 装配 master 完毕后,会自动删除,删除后 api 的 vip 会转移到一个 master node 上,如下图所示可以看到 bootstrap 已经被删除
由于执行安装命令的 console 看不到任何的日志信息,我们可以再开一个 terminal 查看安装目录中 log 目录下的装配日志,如下图
耐心等待就好,如果安装过程中出现下面的等待信息。请耐心等待,因为此时 worker node 应该刚刚装好,还不具备运行 Pod 的能力,需要等 worker node ready 之后,就可以正常继续了
当 worker node ready 之后,上一部卡住的 Pod 被正常调度后,可以看到日志就过去了
与 UPI不同的是,这种安装方式,无需人工 approve csr,会自动 approve,直接将 worker node 加入。等待安装完毕,可以再安装 log 中看到信息,也可以在执行安装明命令的 terminal 中看到,用户名和密码,以及 web console 等信息
安装完毕,检查状态,先获取变量
自行安装 oc 命令后,可以查看
本次遇到的问题总结
1. DNS 要保证所有 OCP 节点都能解析到 vcenter 的 FQDN 才行,否则会无法正常部署 worker node
2. 存储空间预留要充足,否则会装不上
3.整个过程网速很关键,大概用了 2.5 小时,如果各位有专线网络可能会更快或者等待 quay.io 在国内解析速度变快应该也会缩短时间