2020-06-23-openshift4.4 在线安装(包含allinone)静态ip

本文描述openshift4.4 baremental 在线安装方式,我的环境是 vmwamre esxi 虚拟化,也适用于其他方式提供的虚拟主机或者物理机。 ocp4 注册账户即可下载畅游。 - -! 觉得好的可以买官方订阅提供更多企业服务。 采用 1master 1 worker方式,节约资源,worker节点可以参照步骤,想加多少加多少。 若采用 all in one 单节点,master多分配些资源,不再需要部署worker,在下文mster 部署及组件部署后即完成,步骤都是一样的。

之前做过4.3 的离线安装,环境坏了。这次方便点,直接用在线安装,1master 1worker。 4.3离线安装-dhcp方式,之前的文档,高可用的离线安装。 https://github.com/cai11745/k8s-ocp-yaml/blob/master/ocp4/2020-02-25-openshift4.3-install-offline-dhcp.md

部署环境介绍

比官方多了一个base节点,用来搭建部署需要的dns,仓库等服务,这台系统用Centos7.6,因为centos解决源比较方便。

其他机器都用RHCOS,就是coreos专门针对openshift的操作系统版本。

Machine

OS

vCPU

RAM

Storage

IP

bastion

Centos7.6

2

8GB

100 GB

192.168.2.20

bootstrap-0

RHCOS

2

4GB

100 GB

192.168.2.21

master-0

RHCOS

8

16 GB

100 GB

192.168.2.22

worker-0

RHCOS

16

32 GB

100 GB

192.168.2.23

节点角色: 1台 基础服务节点,用于安装部署所需的dhcp,dns,ftp服务。系统不限。由于单master,这台上面不用部署负载了。 1台 部署引导节点 Bootstrap,用于安装openshift集群,在集群安装完成后可以删除。系统RHCOS 1台 控制节点 Control plane,即master,通常使用三台部署高可用,etcd也部署在上面。系统RHCOS 2台 计算节点 Compute,用于运行openshift基础组件及应用 。系统RHCOS

安装顺序

顺序就是先准备基础节点,包括需要的dns、文件服务器、引导文件等,然后安装引导机 bootstrap,再后面就是 master, 再 node

安装准备-镜像仓库

安装base基础组件节点

|base|centos7.6|4|8GB|100 GB|192.168.2.20|

安装系统 centos7.6 mini 设置IP,设置主机名,关闭防火墙和selinux 注意所有节点主机名采用三级域名格式 如 master1.aa.bb.com

base 节点最好安装ntp 服务对下时间,确保时间正常,若时间异常部署节点时拉取镜像会报错 "x509: certificate has expired or is not yet valid"

下载安装文件

https://cloud.redhat.com/openshift/install/metal/user-provisioned 没有账号就注册一个 下载 openshift-install-linux.tar.gz pull-secret.txt openshift-client-linux.tar.gz rhcos-4.4.3-x86_64-installer.x86_64.iso rhcos-4.4.3-x86_64-metal.x86_64.raw.gz 分别是安装文件,镜像拉取密钥,openshift linux client (oc 命令),RHCOS 安装文件,都从上面同一个页面下载,如果节点之前有oc命令,删掉,使用下载的最新的

安装 openshift-install 和 oc 命令

配置dns server

base节点 worker 节点连接 master 都是通过域名的,需要有一个dns server 负责域名解析

准备安装配置文件

base节点 新建一个目录用于存放安装配置文件。目录不要建在 /root 下,后面httpd 服务权限会有问题。

参数解读: 1. 基础域名 2. 因为work部署后面是单独执行的,这边写0 3. 单master,所以写1 4. 就是节点master/worker名称后面一级,这也是为什么主机名要用好几级 5. pod ip 和service ip范围,需要注意不能和内网已有ip范围冲突 6. 我们这属于直接裸金属安装类别,所有不填 7. 这是上一节从网页下载的 pull-secret.txt 内容,需要在txt 内容两头加上单引号 8. 用于后面免密登录。 ssh-keygen -t rsa -b 2048 -N "" -f /root/.ssh/id_rsa ;cat /root/.ssh/id_rsa.pub ;内容两头带上单引号填入sshKey

备份下配置文件,必须,因为下面命令执行后这个 yaml 文件就消失了

部署 httpd 文件服务器

部署在base节点,用于openshift节点部署时候拉取配置文件

浏览器访问下 base节点, http://192.168.2.20/install/ 可以查看到目录下的文件,点开一个文件确认下有查看权限,万一没权限没给到后面安装会失败,无法拉取文件

部署haproxy

部署在base节点,负载到 bootstrap 和master api 6443 端口

启动服务

验证服务

通过浏览器页面查看 IP:9000 可以看到haproxy的监控页面,当前后端服务还没起,所以很多红色的。

安装 bootstrap

在虚拟化中按照之前的配置规划创建系统,使用 rhcos-4.4.3-x86_64-installer.x86_64.iso 启动系统

在安装界面 "Install RHEL CoreOS" , 按 Tab 键修改启动参数。 在 coreos.inst = yes 之后添加。仔细校对参数,不能粘贴

ip=192.168.2.21::192.168.2.1:255.255.255.0:bootstrap.ocp4.example.com:ens192:none nameserver=192.168.2.20 coreos.inst.install_dev=sda coreos.inst.image_url=http://192.168.2.20/install/rhcos-4.4.3-x86_64-metal.x86_64.raw.gz coreos.inst.ignition_url=http://192.168.2.20/install/bootstrap.ign

ip=.. 对应的参数是 ip=ipaddr::gateway:netmask:hostnameFQDN:网卡名称:是否开启dhcp

网卡名称和磁盘名称参照base节点,一样的命名规则,后面两个http文件先在base节点 wget 测试下能否下载

仔细检查,出错了会进入shell界面,可以排查问题。然后重启再输入一次

安装完成后,从base节点 ssh core@192.168.2.21 进入bootstrap 节点

安装 master

同上,注意ip、主机名、ign配置文件和上述不同

ip=192.168.2.22::192.168.2.1:255.255.255.0:master0.ocp4.example.com:ens192:none nameserver=192.168.2.20 coreos.inst.install_dev=sda coreos.inst.image_url=http://192.168.2.20/install/rhcos-4.4.3-x86_64-metal.x86_64.raw.gz coreos.inst.ignition_url=http://192.168.2.20/install/master.ign

装完后 master 的apiserver 会有问题,后面处理

master 上的etcd 没起得来,导致了master的apiserver 也是异常的,需要改下etcd参数

master节点完成了

base 节点执行下面命令完成master节点安装

现在可以修改 /etc/haproxy/haproxy.cfg 移除 bootstrap 节点的6443 和 22623, 然后重启haproxy。 或者直接改dnsmasq

因为我们只有一个master节点,或者可以直接修改dnserver配置 /etc/dnsmasq.d/ocp4.conf 的配置,将api.ocp4.example.com 和 api-int.ocp4.example.com 解析到 master节点IP 192.168.2.22 ,然后重启dnsmasq。 这种情况haproxy 服务可以关掉了。

现在master 的服务组件都安装完成了。bootstrap节点任务完成,可以关掉,已经没用了。

/opt/install/install-config.yaml 中 worker 写的0,所以ocp 会默认把master节点打上 worker的标签。 从 oc get node 可以看出。

安装其他组件

由于我们的master 有worker 的标签,也可当做计算节点。

使用 openshift-install 命令完成集群剩余组件的安装

先处理下 etcd-quorum-guard这个组件,默认是部署三个且用的主机网络,我们需要把他改成1个。

检查所有组件,avaiable 都是 true,如果有个别有问题,可以等worker部署完了慢慢排查。

至此平台已经部署完成,组件也部署完成,若采用all in one,则到此为止。

若需要继续添加计算节点,完成下一步骤。

安装 worker

同上,注意ip、主机名、ign配置文件和上述不同

ip=192.168.2.23::192.168.2.1:255.255.255.0:worker0.ocp4.example.com:ens192:none nameserver=192.168.2.20 coreos.inst.install_dev=sda coreos.inst.image_url=http://192.168.2.20/install/rhcos-4.4.3-x86_64-metal.x86_64.raw.gz coreos.inst.ignition_url=http://192.168.2.20/install/worker.ign

当worker 在控制台看到已经部署完

在部署机执行 oc get csr 命令,查看node 节点加入申请,批准之,然后就看到了node节点。 大功告成!!! 每个node节点会有两条新的csr

至此,整个集群部署完成,若要添加更多node节点,重复本步骤即可。

Web console 登录

ocp4的web console 入口走router了,所以找下域名 首先找到我们的域名,然后在我们自己电脑上 hosts添加解析,指向到router所在节点ip,这样就能够访问openshift 的web 控制台了

把这条写入hosts 192.168.2.22 oauth-openshift.apps.ocp4.example.com console-openshift-console.apps.ocp4.example.com

然后浏览器访问console https://console-openshift-console.apps.ocp4.example.com

用户名是 kubeadmin 密码在这个文件里 cat /opt/install/auth/kubeadmin-password

后续需注意,若重启worker,则router 可能会在几台worker漂移,可以参照ocp3的做法,给某个节点打上infra 标签,再修改 router 的 nodeselector

oc -n openshift-ingress-operator get ingresscontroller/default -o yaml

参考文档

官方文档 https://access.redhat.com/documentation/en-us/openshift_container_platform/4.4/html/pipelines/installing-pipelines https://www.redhat.com/sysadmin/kubernetes-cluster-laptop

米开朗基杨 https://cloud.tencent.com/developer/article/1638330

也可以顺便关注下我的github,后续更新会同步到github

https://github.com/cai11745/k8s-ocp-yaml

Last updated