【文章摘要】 本文介绍了如何使用OpenShift Assisted Installer 安装工具安装OpenShift集群的方法和步骤。
熟悉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个前提条件:
OpenShift Assisted Installer 本身提供了一个图形化安装界面,目前被部署在红帽提供的SaaS门户上面。另外,该工具也可以被部署在现有的OpenShift集群或者使用podman来承载该服务。但鉴于目前OpenShift Assisted Installer并没有实现真正的离线部署,因此,直接使用SaaS门户是最简单的方式,以下我们的安装将基于红帽官方SaaS门户进行。
由于我自己没有一个足够容器的物理机设备,因此,我采用在KVM上模拟裸金属的方式来安装OpenShift 4.8.9。
安装的第一步需要访问cloud.redhat.com。如果你没有帐号,可以选择创建一个。
选择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上面,因此没有选择。在该页面,你也可以查看安装节点的配置要求。
选择第一个选项”Full image file”,同时将SSH证书认证方式的公钥粘贴进去。如果你的网络需要一个proxy,那么需要选中Configure cluster-wide proxy setting设置代理。然后,点击Generate Discovery ISO。
直接选择Download Discovery ISO或者复制wget命令进行下载引导iso文件。
接下来我们需要创建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个虚拟机都起来后,安装图形界面显示如下:
在这里,我们选择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
到这一步,安装已经完成。
通过使用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 条评论
2021-12-19 15:54
2021-12-10 18:34
freedom01020: @匿名用户 还有,ssh进入后发现有些shell命令用不了,错误是这样的,用scp就报错"-bash: /bin/scp: Input/output error",用route就报错"-bash: /bin/route: Input/output error",检查过了,硬盘是没问题的,创建删除文件都是成功的,目前不清楚是什么原因。。
2021-11-12 09:52
2021-10-26 22:00