WilliamShen
作者WilliamShen·2021-09-22 17:13
高级方案架构师·红帽企业级开源解决方案中心

OpenShift Assisted Installer – 让安装更加简单

字数 6135阅读 5732评论 4赞 4

【文章摘要】 本文介绍了如何使用OpenShift Assisted Installer 安装工具安装OpenShift集群的方法和步骤。

1 背景

熟悉OpenShift安装的同学可能都知道,在过去,OpenShift有IPI(Installer Provisioned Infrastructure,也称之为全栈完全自动安装方式)和UPI(User Provisioned Infrastructure,也称之为现有基础设施安装方式)两种安装方式。

IPI直接跟底层的基础设施对接(比如国外的三大公有云、私有云里面的VMWare, Red Hat OpenStack, RHV等),安装程序直接创建需要的虚拟机,优点是安装非常简单,但缺点是并不是所有的企业都可以将底层的IaaS资源管理帐号提供给PaaS平台。UPI的安装方式相对来说就要复杂一点,PaaS平台安装管理人员需要自己管理网络、设置负载均衡器、设置DNS、创建虚拟机和安装操作系统、创建点火文件等。

为了简化OpenShift的安装过程,尤其是提升OpenShift在裸机上面的安装体验,红帽公司推出了OpenShift Assisted Installer(OpenShift快捷安装工具,目前处于技术预览阶段)。OpenShift Assisted Installer是专门用于简化OpenShift安装过程的一个快捷安装工具。通过使用OpenShift Assisted Installer,用户不需要创建点火文件,也不需要单独创建一个HTTP服务器用于向外暴露CoreOS点火文件,不需要自己创建DNS服务(如果您要在集群外访问集群的API、图形化管理门户和集群内部的应用,那你还是需要DNS向外暴露这些服务;但是,安装过程本身不依赖于DNS服务),而且,安装过程也不需要一个单独的虚拟机充当bootstrap节点,从而节省了安装资源要求(实际上,bootstrap还是需要的,但是在安装过程中巧妙地借用了其中一个master节点来实现)。您需要做的就是使用OpenShift Assisted Installer提供的ISO, 将ISO挂载到裸机或者虚拟机,引导机器,然后点击几次鼠标,OpenShift集群就会被创建出来。

在本文写作的时候,使用OpenShift Assisted Installer还有3个前提条件:

  • 第一,您需要一个DHCP服务器,这个DHCP服务器将会为创建的虚拟机或裸机分配IP地址。静态IP地址分配已经放到产品路线图里面了,将来会支持,但现在还没有被OpenShift Assisted Installer的图形界面所支持(目前OpenShift Assisted Installer的API实际上已经可以支持静态IP地址分配)。
  • 第二,被安装的OpenShift集群需要能够访问互联网。离线环境的安装方式现在还没有被支持,但是跟第一个前提条件类似,OpenShift Assisted Installer的产品路线路已经考虑将来支持离线环境的安装。
  • 第三,集群阶段需要位于同一个VLAN。所有被安装节点需要在同一个VLAN中,DHCP服务器也需要在该VLAN中。

OpenShift Assisted Installer 本身提供了一个图形化安装界面,目前被部署在红帽提供的SaaS门户上面。另外,该工具也可以被部署在现有的OpenShift集群或者使用podman来承载该服务。但鉴于目前OpenShift Assisted Installer并没有实现真正的离线部署,因此,直接使用SaaS门户是最简单的方式,以下我们的安装将基于红帽官方SaaS门户进行。

由于我自己没有一个足够容器的物理机设备,因此,我采用在KVM上模拟裸金属的方式来安装OpenShift 4.8.9。

2 安装过程

2.1创建引导iso文件

安装的第一步需要访问cloud.redhat.com。如果你没有帐号,可以选择创建一个。

选择“Create cluster”:

选择Datacenter, 然后选择Assisted Installer下面的Create cluster:

如上图所示,输入集群名字ocp4,基本域名example.com(集群名字和域名可以根据您的实际情况修改)。由于我要安装一个包括5个节点的ocp集群(3个控制节点+2个计算节点),所以我不选择Install single node OpenShift(SNO)。Edit pull secret不需要修改,直接忽略。点击Next进入下一步。

这里需要说明一点的是,single node OpenShift(SNO – OpenShift单节点集群是OpenShift 4.8新推出的功能,目前处于技术预览阶段,虽然SNO最初的目的是用于解决电信行业5G背景下的边缘计算场景的,但是由于该特性大大降低了对资源的要求,无意中为广大开放人员了解、安装、学习OpenShift提供了便利。)

在这个界面,我们可以选择创建引导ISO文件了。如果安装的裸金属上面,可以选择安装OpenShift Virtualization和OpenShift Container Storage组件。由于我安装在KVM上面,因此没有选择。在该页面,你也可以查看安装节点的配置要求。

点击Generate Discovery ISO按钮:

选择第一个选项”Full image file”,同时将SSH证书认证方式的公钥粘贴进去。如果你的网络需要一个proxy,那么需要选中Configure cluster-wide proxy setting设置代理。然后,点击Generate Discovery ISO。

直接选择Download Discovery ISO或者复制wget命令进行下载引导iso文件。

2.2 本地创建并引导虚拟机

接下来我们需要创建3个控制节点、2个计算节点一共5个虚拟机,在创建的过程中,我们需要指定虚拟机从光盘启动(光盘已经加载下载的引导iso文件),并且,这四个虚拟机是在同一个二层网络中(我们事先创建了一个名为openshift4的虚拟网络,采用NAT方式)。创建虚拟机的脚本如下,我们可以先创建master0:

## master0
virt-install --name wshen-4.8.9-master0 --memory 16384 --vcpus=8 \\
  --network network=openshift4,model=virtio,mac.address=08:50:56:36:57:62  \\
  --cdrom /opt/vms-disk/disk-sdb/wm-image/ocp-assisted/discovery_image_ocp4.iso \\
  --disk path=/opt/vms-disk/disk-sdb/wm-image/wshen-4.8.9-master0.qcow2,bus=virtio,size=120

## master1
virt-install --name wshen-4.8.9-master1 --memory 16384 --vcpus=8 \\
  --network network=openshift4,model=virtio,mac.address=08:50:56:35:c7:af  \\
  --cdrom /opt/vms-disk/disk-sdb/wm-image/ocp-assisted/discovery_image_ocp4.iso \\
  --disk path=/opt/vms-disk/disk-sdb/wm-image/wshen-4.8.9-master1.qcow2,bus=virtio,size=120

## master2
virt-install --name wshen-4.8.9-master2 --memory 16384 --vcpus=8 \\
  --network network=openshift4,model=virtio,mac.address=08:50:56:2c:0f:51  \\
  --cdrom /opt/vms-disk/disk-sdb/wm-image/ocp-assisted/discovery_image_ocp4.iso \\
  --disk path=/opt/vms-disk/disk-sdb/wm-image/wshen-4.8.9-master2.qcow2,bus=virtio,size=120

## worker1
virt-install --name wshen-4.8.9-worker1 --memory 16384 --vcpus=8 \\
  --network network=openshift4,model=virtio,mac.address=08:50:56:24:a7:67  \\
  --cdrom /opt/vms-disk/disk-sdb/wm-image/ocp-assisted/discovery_image_ocp4.iso \\
  --disk path=/opt/vms-disk/disk-sdb/wm-image/wshen-4.8.9-worker1.qcow2,bus=virtio,size=120

## worker2
virt-install --name wshen-4.8.9-worker2 --memory 16384 --vcpus=8 \\
  --network network=openshift4,model=virtio,mac.address=08:50:56:31:76:f5  \\
  --cdrom /opt/vms-disk/disk-sdb/wm-image/ocp-assisted/discovery_image_ocp4.iso \\
  --disk path=/opt/vms-disk/disk-sdb/wm-image/wshen-4.8.9-worker2.qcow2,bus=virtio,size=120

在执行完第一个创建master0的命令后,如果用virt-manager查看创建的虚拟机,我们可以看到该虚拟机正在被启动和引导。在该虚拟机启动之后,我们可以看到master0出现在图形界面上面了:

如果点击View cluster events按钮,可以看到master0的引导过程:

此时,virt-install 命令行还没有退出,因为master0还没有重启,我们将看到后面阶段进行机器重启后virt-install命令将会成功退出。

重新新开几个终端,接下来我们一个一个创建master1、master2、worker1和worker2,这5个虚拟机都起来后,安装图形界面显示如下:

选择Next,进行下一步网络配置:

在这里,我们选择Cluster-Managed Networking,并且分别手工指定API Virtual IP和Ingress Virtual IP, 容器网络文明可以采用默认配置,因此不需要选择Use Advanced networking,然后选择Next进入Review页面:

在Review页面,选择Install cluster,然后OpenShift Assisted Installer开始创建集群。

然后安装页面显示安装进度:上面图片现在正在安装3个控制节点, master 1被选中作为bootstrap节点,我们可以点击下面的View Cluster Events查看具体安装进度事件。

观察安装进度,安装状态会从Preparing for Installation到Installing,如下图所示:

如果你点击某个虚拟机,你发现系统正在写硬盘,在写完硬盘后,系统将会重启,前面的virt-install命令将会完成。同时,Download Installation Logs链接变成可用状态,我们可以通过它来下载查看安装日志文件。

下面是安装过程中的几个截屏,安装状态会从Installing到Finalizing最后到Installed。

接下来我们可以下载kubeconfig配置文件,设置KUBECONFIG环境变量,然后就可以使用oc命令来访问OCP集群。

export KUBECONFIG=/root/ocp4/install/kubeconfig

我们也可以复制kubeadmin的密码,通过OCP管理界面访问OpenShift。如果在你本地电脑的本地hosts文件里面加入以下条目,你就可以在浏览器里面输入https://console-openshift-console.apps.ocp4.example.com/ 来访问OCP管理界面了:

192.168.190.100    api.ocp4.example.com
192.168.190.101    oauth-openshift.apps.ocp4.example.com
192.168.190.101    console-openshift-console.apps.ocp4.example.com
192.168.190.101    grafana-openshift-monitoring.apps.ocp4.example.com
192.168.190.101    thanos-querier-openshift-monitoring.apps.ocp4.example.com
192.168.190.101    prometheus-k8s-openshift-monitoring.apps.ocp4.example.com
192.168.190.101    alertmanager-main-openshift-monitoring.apps.ocp4.example.com

到这一步,安装已经完成。

3 总结

通过使用OpenShift Assisted Installer,可以大大简化OpenShift集群的安装,省去了Web服务器、负载均衡器、DNS服务器的安装和配置,不需要创建CoreOS的点火文件,也不需要运行openshift-install命令,并且在安装过程中省去了一个Bootstrap服务器的额外开销。

如果你没有足够的计算机资源,但是假如您有一个大于8 vCPU、32G内存、120G硬盘的笔记本电脑,那么你也可以尝试着使用OpenShift Assisted Installer来安装一个单节点的OpenShift(单节点OCP需要8 vCPU、32G内存、120G硬盘)。还等什么,赶紧操练起来吧!

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

4

添加新评论4 条评论

yanghongenyanghongen运维工程师匿名
2021-12-19 15:54
在哪收藏呢 没有找到
匿名用户
2021-12-10 18:34
你好,我想问下,我使物理机从U盘(里面加载了ISO)启动,搭建了openshift,但是发现重启后就没了,请问有办法解决这个问题么,要不然每次重启后都得重新部署了。。多谢

freedom01020: @匿名用户 还有,ssh进入后发现有些shell命令用不了,错误是这样的,用scp就报错"-bash: /bin/scp: Input/output error",用route就报错"-bash: /bin/route: Input/output error",检查过了,硬盘是没问题的,创建删除文件都是成功的,目前不清楚是什么原因。。

2021-12-10 18:57
qq2194365877qq2194365877网络工程师网络工程师
2021-11-12 09:52
有用
LearLear系统工程师Karltec
2021-10-26 22:00
学习一下
Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广