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

初始配置“backend machine-config-server”和“backend api-backend”不要注释bootstrap部分 , 安装过程中 , 如果命令“./openshift-install --dir= wait-for bootstrap-complete --log-level=info”输出结果提示移除bootstrap再注释bootstrap
三 , 下载需要的软件并准备安装配置文件
1 , 下载需要的软件
(1) 从“”下载集群安装工具:openshift-install , 该工具协助在公有云和本地基础设施上部署OpenShift 4集群
(2)安装集群管理工具:oc , 从“ ”下载最新版 , oc可以通过命令行的方式连接管理集群
2 , 定制安装配置文件
OpenShift 4集群安装和OpenShift 3完全不同 , 在安装前 , 需要定制安装配置文件 , 下面是一个样例配置文件(文件名必须为install-config.yaml):
apiVersion: v1baseDomain: wumi.aicompute:- hyperthreading: Enabledname: workerreplicas: 0//在自维护的物理机上部署集群 , 需设置为0controlPlane:hyperthreading: Enabledname: masterreplicas: 3metadata:name: okd-infranetworking:clusterNetwork:- cidr: 10.128.0.0/14hostPrefix: 23networkType: OpenShiftSDNserviceNetwork:- 172.30.0.0/16platform:none: {}fips: falsepullSecret: 'pullsecret obtained from redhat'sshKey: 'sshkey that is created by ssh-keygen command'搭建的集群里面有三台作为“master” , 主要运行apiserver、etcd cluster等 。
“pullSecret”:从红帽官网获得 , 部署集群需要的镜像存储在Quay.io , 该key主要用来验证并获取镜像 。
“sshKey”:是ssh public key , 可以通过命令“ssh-keygen”获得 , 在配置对应私钥的主机上 , 使用ssh命令可以直接登录集群中的服务器 , 不用输入密码 , 方便对集群进行调试等 。
四 , 生成k8s manifest和ignition配置文件
1 , 生成k8s manifest文件
创建目录“config-install” , 将上个步骤中编写的集群安装配置文件“install-config.yaml”拷贝到该目录 , 然后执行下面命令 ,
./openshift-install create manifests --dir=config-install执行后 , 安装程序在目录“config-install”中生成manifests文件(文件install-config.yaml会被消耗掉)
我们不打算运行用户的pod在master上 , 修改文件“config-install/manifests/cluster-scheduler-02-config.yml” , 将参数“mastersSchedulable”设置为“false” , 保存并退出 。
2 , 生成ignition配置文件 , 该文件完成CoreOS的定制(Openshift 4集群的主机都必须运行CoreOS)
./openshift-install create ignition-configs --dir=config-install执行后 , 安装程序在目录“config-install”生成ignitions文件(manifests文件会被消耗掉)
五 , 搭建PXE安装环境
在得到ignition文件和系统镜像文件后 , 配置PXE安装环境 。 ignition、kernel、initrd等通过http供集群主机下载 , 所以首先需要配置http服务器和tftp服务器
1 , TFTP服务器
对tftp的配置主要是两个部分:
PXE的Bootfile要使用“lpxelinux.0” , 这样才可以使用http协议;
pxelinux.cfg配置:
# D-I config version 2.0# search path for the c32 support libraries (libcom32, libutil etc.)path debian-installer/amd64/boot-screens/include debian-installer/amd64/boot-screens/menu.cfgdefault debian-installer/amd64/boot-screens/vesamenu.c32prompt 0timeout 0label fedora-coreos-bootstrapKERNELAPPEND ip=dhcp initrd= \console=tty0 console=ttyS0 coreos.inst.install_dev=/dev/sda \coreos.inst.ignition_url= \coreos.inst.install_dev=/dev/sda \coreos.live.rootfs_url=label fedora-coreos-masterKERNELAPPEND ip=dhcp initrd= \console=tty0 console=ttyS0 coreos.inst.install_dev=/dev/sda \coreos.inst.ignition_url= \coreos.inst.install_dev=/dev/sda \coreos.live.rootfs_url=label fedora-coreos-workerKERNELAPPEND ip=dhcp initrd= \console=tty0 console=ttyS0 coreos.inst.install_dev=/dev/sda \coreos.inst.ignition_url= \coreos.inst.install_dev=/dev/sda \coreos.live.rootfs_url=