精选文章

容器云平台OpenShift3.11集群部署历险记(上)

2020-05-20 18:33:57 | 来源:中培企业IT培训网

小红帽的容器云平台OpenShift嫁接了Docker和Kubernetes的长处,一跃成为企业快速开发、测试、运维为一体的佼佼者,为日常繁杂的大型项目部署、升级工作打造了一把利器,从而大幅减轻运维人员繁重的工作压力,更为企业自身实现Paas、DevOps和MicroService一条龙服务加上了有力的砝码。


然而搭建这个健硕的云平台也非易事,百度上搭建容器云的文章比比皆是,但读者能够非常顺利完成搭建全过程的也为数不多,因为很多陷阱是由于我们对OpenShift在搭建集群过程中的简易的报错信息不理解造成的。


本人搭建了All In One OpenShift环境后感觉还是比较容易上手的,但All In One的环境绝对不能满足生产环境的需要,因此集群云平台部署也是必须要闯过的一道关卡,在此我把我的搭建历程和解决其中遇到的问题技巧一并写下来。


相信读者顺着我的思路可以100%完成集群云平台的部署,而不会再遇到那些巨坑和天坑了,这里的“天坑”才是本文的重点,我来分享我是怎么解决的!虽然用了2天的时间排疑,但成就感就是填平了天坑,让读者可以安全通过。好了大家来看我的集群部署历险记吧!


由于之前我用了Ubuntu系统部署了All In One环境的OpenShift云平台,感觉挺简单的,过程可以参考百度的OpenShift云平台All In One搭建的文章,这里就不再赘述。因此顺理成章我想也可以完成Ubuntu系统的OpenShift集群部署啊!


二话没说,我首先先完成一个干净的Ubuntu环境,并以此为模板设置了3台虚拟机,在参考了百度其他文章后发现基本都是通过Ansible管理工具搭建的,小红帽为OpenShift集群部署提供了Ansible的Playbook脚本如下图所示:

利用这些成熟的脚本,按照官方的讲法,我们可以一键完成部署,这里就是第一个坑,官方并没有说明是否对Ubuntu系统兼容,当我在运行时发现,脚本对Centos系统依赖度非常高,用到了SELINUX,美国国家安全局对于强制访问控制的安全策略配置,而Ubuntu系统没有嵌入SELINUX,所以直接就被判死刑了。


当然我并不甘心,强行在Ubuntu系统中安装了SELINUX,但后续的部署Playbook脚本中仍遇到了各种与Centos系统绑定的软件。俗话说强扭的瓜不甜,如果继续这样在Ubuntu系统来部署Playbook,我必将心力交瘁。审时度势,我依然投入了Centos的怀抱,但天坑已经在不远处等着我了,此时我还不知道……


看一下我的部署手札吧!


第一步:先安装Centos7.7系统,为了方便,同时为系统安装了gnome图形化界面,并为Centos系统配置了管理员权限。并根据官方的提示更新了操作系统组件,读者可以通过如下命令安装:

yum update -y

yum install wget git net-tools bind-utils yum-utils iptables-services bridge-utils bash-completion kexec-tools sos psacct device-mapper-persistent-data lvm2


第二步:在执行playbook部署中会通过一些端口完成部署工作,因此我们事先打开这些端口就非常重要了,当然读者嫌麻烦可以先把防火墙iptables关闭掉,但生产环境就不建议了,关闭iptables命令很简单,可以通过:

# 停止防火墙service iptables stop

# 永久关闭防火墙chkconfig iptables off来完成。


我个人建议通过下面的命令打开如下端口:

iptables -I INPUT -p udp --dport 4789 -j ACCEPT &&

iptables -I INPUT -p tcp --dport 53 -j ACCEPT &&

iptables -I INPUT -p udp --dport 53 -j ACCEPT &&

iptables -I INPUT -p tcp --dport 8053 -j ACCEPT &&

iptables -I INPUT -p udp --dport 8053 -j ACCEPT &&

iptables -I INPUT -p tcp --dport 443 -j ACCEPT &&

iptables -I INPUT -p tcp --dport 8443 -j ACCEPT &&

iptables -I INPUT -p tcp --dport 10250 -j ACCEPT &&

iptables -I INPUT -p tcp --dport 10010 -j ACCEPT &&

iptables -I INPUT -p tcp --dport 2049 -j ACCEPT &&

iptables -I INPUT -p udp --dport 2049 -j ACCEPT &&

iptables -I INPUT -p tcp --dport 2379 -j ACCEPT &&

iptables -I INPUT -p tcp --dport 2380 -j ACCEPT &&

iptables -I INPUT -p tcp --dport 9000 -j ACCEPT &&

iptables -I INPUT -p tcp --dport 8444 -j ACCEPT &&

iptables -I INPUT -p tcp --dport 9200 -j ACCEPT &&

iptables -I INPUT -p tcp --dport 9300 -j ACCEPT &&

iptables -I INPUT -p tcp --dport 1936 -j ACCEPT &&

service iptables save


当看到[ok]字样则代表端口打开命令已保存到iptable配置文件了,如下图:



然后再通过命令cat /etc/sysconfig/iptables查看打开的端口情况,如下图所示:



好了,小伙伴们在《容器云平台OpenShift3.11集群部署历险记(中)》里继续看我怎么填平一路的坑和最后的天坑吧!


标签: 云平台 容器云