zoukankan      html  css  js  c++  java
  • 容器云平台OpenShift3.11集群部署历险记(上)

    小红帽的容器云平台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集群部署历险记(中)》里继续看我怎么填平一路的坑和最后的天坑吧!

  • 相关阅读:
    iOS数字媒体开发浅析
    Servlet
    Qt之图形(绘制文本)
    Qt之图形(转换)
    asp.net 缓存公共类
    logback.xml
    ext树菜单实体类
    ext,exrReturn新增,修改删除等用
    ExtPager ,分页
    ExtGridReturn ,存放ext的实体类集合和总数
  • 原文地址:https://www.cnblogs.com/ExMan/p/13718233.html
Copyright © 2011-2022 走看看