OpenShift企业版安装:单Master集群
本文是一篇安装指引,目的并非用于讲解教学。故一些技术细节将不展开详细介绍,请读者见谅。
1 安装材料
1.1 安装介质
OpenShift的离线环境安装需要提前准备如下的安装介质。
OpenShift企业版相关RPM包
OpenShift企业版相关容器镜像
离线安装介质可以联系红帽工程师获取,或自行准备。自行准备的过程请参考本文末尾的附录章节。
1.2 主机
1.2.1 主机配置要求
本文示例所使用的主机配置如下:
如资源允许,可扩充各类节点的CPU、内存及磁盘、或增加更多的计算节点,获取更好的性能表现。主机可以使用物理机或虚拟机。推荐配置如下:
1.2.2 系统要求
操作系统:Red Hat Enterprise Linux 7.3 Minimal安装。
1.2.3 网络配置
所有主机需要有独立的IP地址,可被解析的域名。主机的默认网关不可为空。
保证所有的主机的主机名可以被正常解析。为简单起见,本文的环境通过编辑各个节点的文件实现。编辑各个主机的文件,添加如下内容:
1.2.4 时间同步
请确保所有主机节点的时间已经同步。
2 安装流程
OpenShift单Master的安装流程包含以下步骤:
一、基础服务搭建。搭建安装所依赖的YUM仓库及容器仓库服务。
二、准备主机。准备及配置集群所需的主机节点。
三、安装前配置。完整安装所需要的前置配置。
四、执行安装。配置并执行OpenShift Ansible Playbook。
五、安装后配置。按需配置集群。
六、验证安装。验证集群成功安装,功能正常。
3 搭建基础服务
获取了OpenShift的安装介质后,需要为RPM软件包建立YUM软件仓库服务器,并搭建容器仓库服务,将容器镜像推送至镜像仓库中备用。
3.1 搭建YUM仓库服务
将提前获取的RPM软件包拷贝到主机的目录下。这里假设包如下:
解压RPM包至主机的目录。命令如下:
创建YUM REPO配置文件。文件内容如下:
安装Httpd服务。命令如下:
创建Httpd配置文件,发布YUM源目录。文件内容如下:
启动并设置开机自启动。命令如下:
测试环境,为了简化,直接放行数据包。命令如下:
注意:不可直接停用iptables服务,Docker及Kubernetes依赖iptables服务。
安装及配置完Httpd服务后通过访问可看到RPM软件包目录。
通过命令检查YUM源可被正常访问,OpenShift相关的RPM包存在并版本无误。命令及输出如下:
3.2 搭建镜像仓库服务
本节在主机上安装镜像仓库服务。请登录主机进行操作。
3.2.1 安装仓库服务
安装镜像仓库Docker Distribution。命令如下:
3.2.2 配置TLS
为了启用TLS协议传输,需要生成自签名证书。命令如下:
编辑镜像仓库服务配置文件。确认http的配置如下:
提示:YAML文件对格式和空格非常敏感,编辑配置时请注意。
修改完毕后,刷新systemd配置。命令如下:
重启Docker Distribution服务。命令如下:
服务成功启动后,可以看到443端口已经被Docker Distribution监听。
配置信任自签名证书。并重启Docker服务
安装Docker服务。命令如下:
3.2.3 导入容器镜像
修改所有镜像的名称,指向。以镜像为例子,命令示例如下:
由于涉及的镜像众多,可以使用如下命令批量修改镜像名称。
将修改好名称的镜像推送至目标镜像仓库。以镜像为例子,命令示例如下:
由于涉及的镜像众多,可以使用如下命令批量修改推送镜像。
4 准备主机
请在所有Master及Node节点上执行本小节的配置。
4.1 配置YUM源
配置YUM源以便后续安装所需要的RPM软件包。创建文件。内容如下:
删除Node2节点上的配置文件。
配置完毕后,更新并检查YUM仓库信息。执行如下命令:
配置成功后可以见到相关的仓库的信息。示例输出如下:
4.2 安装基础软件包
安装OpenShift运行及管理所需的基础软件包。命令如下:
更新系统软件包。命令如下:
更新完成后重启主机。命令如下:
##4.3 防火墙配置
测试环境,为了简化,直接放行数据包。命令如下:
4.4 安装Docker
安装所需版本的Docker。命令如下:
启动并配置Docker服务开机启动。命令如下:
4.5 配置Docker
修改Docker配置文件,确保OPTIONS变量配置了如下参数。
修改ADD_REGISTRY变量。将如下内容:
修改为:
配置镜像仓库证书信任。命令如下:
配置修改完毕后,重启Docker服务。
配置完毕后,确认镜像可以正常拉去。
5 安装前配置
本文以Master节点作为安装的堡垒机。本小节所有的操作均在Master节点上执行。
5.1 配置SSH互信
在上生成SSH Key。
配置Master节点到各个Node节点及Master节点的互信。
5.2 安装Ansible
OpenShfit的安装通过Ansible自动完成,因此需要先安装Ansible及OpenShfit相关的Ansible Playbook。
5.3 设置安装配置
编辑文件。将文件内容替换为如下内容:
6 执行安装
安装前再次检查所有的节点已经配置并就绪。在Master节点上执行如下命令:
执行安装。命令如下:
当安装显示如下信息时,说明安装成功结束。
查看集群节点,确认集群正常。命令及示例输出如下:
查看集群容器,确认各个组件状态正常。命令及示例输出如下:
7 安装后配置
7.1 创建用户
创建用户,密码为。命令如下:
通过浏览器访问即可登录OpenShift的Web Console。
7.2 域名解析(可选)
集群外部访问OpenShift的应用需要使用域名。为了测试方便,可以配置的泛域名解析。
编辑配置主机的文件。文件内容如下:
重启dnsmasq服务。
此时Master节点上的dnsmasq服务将可以解析*.apps.exmaple.com的域名请求。在有需要的主机上将域名解析服务器指向Master即可。在Linux上,编辑各个节点的文件。添加如下信息:
Windows的桌面请在网络设置界面修改域名解析服务器的配置。
配置完毕后,测试一个随机域名是否可以被正常解析。
7.3 创建持久化资源池(可选)
为了方便测试与使用,可以提前创建一批PV。命令如下:
创建完毕后可见创建好的PV。
7.4 日志聚合(可选)
如需要日志聚合组件,可将文件的下面两行内容的注释去除。
然后执行Ansible Playbook。命令如下:
成功安装完毕后,可以见到Logging组件相关的容器实例。
Kibana及Elastic Search默认要求的内存比较高,如遇到容器出现Error状态,可能是内存不足导致。此时可以考虑增加Node节点的内存。通过以下命令可以查看具体错误的信息。
8 验证安装
以前文创建的用户登录系统。
提示:通过如下的命令可以再次登录成集群管理员。
创建项目。
部署容器应用。
容器成功启动。
通过访问容器服务。
以上操作也可以在OpenShift的Web Console界面完成。此时登录Web Console,可以亦可见到前文部署的容器。
为应用创建Route以便外部可以通过域名访问。
查看生产的Route信息。
通过域名访问服务。
请确保域名将被解析到Router所在的Node的节点的IP。可以通过修改实现,也可以通过配置dnsmasq或bind等服务实现。请参考章节7.2。
附录
附录A 制作离线RPM包
在可联网的RHEL主机上注册红帽订阅,关联到相应的YUM仓库。命令如下:
同步所需的仓库至本地。命令如下:
压缩/opt/repos目录。压缩完毕后的压缩包即可用于离线环境的安装。
附录B 制作离线镜像包
在可联网的RHEL主机上下载如下容器镜像。
将下载好的镜像保存成tar包。保存的过程需要消耗较多的磁盘空间及比较耗时。可以考虑分组保存成多个tar包。
为了节省空间,对生成的tar包进行压缩。
压缩完成后将生成tar.gz文件。将文件拷贝到其他机器上,通过命令即可完成导入。如有其它需要离线的镜像,也可通过上述描述的步骤准备。
附录C 安装常见问题
遇到无法排除的错误,可以尝试卸载OpenShift集群再次安装。命令如下:
参考材料
https://docs.openshift.com/container-platform/3.7/install_config/install/advanced_install.html
https://docs.openshift.com/container-platform/3.7/install_config/install/disconnected_install.html
领取专属 10元无门槛券
私享最新 技术干货