快速安装一个OpenShift 4 准生产集群

OpenShift是RedHat开发的PaaS , 使用需要付费订阅 , 它的社区版为OKD , 两者安装方法几乎一致 , 只是在操作系统和上层应用软件上有不同 , 本文讲述OKD的安装 。
集群环境
快速安装一个OpenShift 4 准生产集群文章插图
集群主机配置
注意:
集群中的主机是普通的PC , 是实实在在的主机 , 不是虚拟机;
各角色的主机内存不要低于16GB , 特别作为“Worker Host”的机器 , 因为仅部署“openshift-logging”就会消耗不小的内存 , 所以内存建议越大越好;
如果计划部署“Storage”(比如Ceph)在“Worker Host” , 搭建集群前就给主机安装所需的非系统硬盘 , 否则还要关机安装硬盘;
集群搭建过程需要从Quay.io下载很多的镜像 , 如果你的网络很慢 , 那安装时间将会相当长 , 建议配置一个镜像站点或者想办法改善自己的网络环境 。
下面开始演示安装过程 , 总共分六个部分:
一 , DHCP和DNS
安装集群前 , 需要完成DHCP和DNS的配置
1 , DHCP
集群主机使用PXE方式安装操作系统 , 通过DHCP得到网络地址信息 。 配置DHCP主要是下面两点(笔者使用是Windows Server 2008自带的DHCP服务)
(1)绑定主机的IP和MAC , 方便对DNS进行配置
(2)配置PXE相关
快速安装一个OpenShift 4 准生产集群文章插图
DHCP配置
这里使用的bootfile文件为“lpxelinux.0” , 原因后面解释 。
2 , DNS
本来也准备使用Windows Server 2008自带的DNS服务 , 刚好有个CoreDNS容器 , 就使用了它 , 配置文件如下 ,
$ORIGIN okd-infra.wumi.ai.; designates the start of this zone file in the namespace$TTL 1h; default expiration time of all resource records without their own TTL valueokd-infra.wumi.ai.INSOAns.okd-infra.wumi.ai. host-1.example.xyz. ( 2007120710 1d 2h 4w 1h )okd-infra.wumi.ai.INNSns; ns.example.com is a nameserver for example.comokd-infra.wumi.ai.INA10.1.95.9; IPv4 address for example.comnsINA10.1.95.9; IPv4 address for ns.example.combootstrapINA10.1.99.7 master-1INA10.1.99.11master-2INA10.1.99.3master-3INA10.1.99.8worker-1INA10.1.99.14worker-2INA10.1.99.15worker-3INA10.1.99.16etcd-0INA10.1.99.11etcd-1INA10.1.99.3etcd-2INA10.1.99.8_etcd-server-ssl._tcp 86400 IN SRV 0 10 2380 etcd-0 _etcd-server-ssl._tcp 86400 IN SRV 0 10 2380 etcd-1 _etcd-server-ssl._tcp 86400 IN SRV 0 10 2380 etcd-2 apiINA10.1.95.9; host-1 haproxyapi-intINA10.1.95.9; host-1 haproxy*.appsINA10.1.95.9; host-1 haproxy二 , HAProxy
HAProxy主要实现对APIServer和Ingress负载均衡访问 , 直接上配置文件 ,
/etc/haproxy/haproxy.cfg
defaultsmodetcpoptiondontlognulltimeout connect10stimeout client1mtimeout server1m#---------------------------------------------------------------------frontend openshift-api-serverbind 10.1.95.9:6443default_backend api-backendmode tcp#---------------------------------------------------------------------backend api-backendbalance sourcemodetcp#server bootstrap 10.1.99.7:6443check port 6443server master-1 10.1.99.11:6443check port 6443server master-2 10.1.99.3:6443check port 6443server master-3 10.1.99.8:6443check port 6443#---------------------------------------------------------------------frontend machine-config-serverbind 10.1.95.9:22623default_backend machine-config-servermode tcp#---------------------------------------------------------------------backend machine-config-serverbalance sourcemodetcp#server bootstrap 10.1.99.7:22623check port 22623server master-1 10.1.99.11:22623check port 22623server master-2 10.1.99.3:22623check port 22623server master-3 10.1.99.8:22623check port 22623#---------------------------------------------------------------------frontend ingress-httpbind 10.1.95.9:80default_backend ingress-httpmode tcp#---------------------------------------------------------------------backend ingress-httpbalance sourcemodetcpserver worker-1 10.1.99.14:80check port 80server worker-2 10.1.99.15:80check port 80server worker-3 10.1.99.16:80check port 80#---------------------------------------------------------------------frontend ingress-httpsbind 10.1.95.9:443default_backend ingress-httpsmode tcp#---------------------------------------------------------------------backend ingress-httpsbalance sourcemodetcpserver worker-1 10.1.99.14:443check port 443server worker-2 10.1.99.15:443check port 443server worker-3 10.1.99.16:443check port 443#---------------------------------------------------------------------listenadmin_stats# 网页管理页面bind 0.0.0.0:8081mode httplog 127.0.0.1 local0 errstats refresh 10sstats uri /haproxystats realm welcome login\ Haproxystats hide-versionstats admin if TRUE初始配置“backend machine-config-server”和“backend api-backend”不要注释bootstrap部分 , 安装过程中 , 如果命令“./openshift-install --dir=