企业版 OpenShift 4.3在线安装

概述

在去年 OpenShift 4.1 刚刚出来折腾了好久,坑挺多的,今天安装4.3明显坑少了很多,基本没什么坑,就是基础环境的准备花了挺多时间,做个记录。

  • 安装方式是baremetal,我用的是VMware虚拟机,使用的是PXE方式装系统。

安装环境介绍

  • 7台机器:

创建一台基础架构节点,我使用rhel7.6;另外创建6台虚拟机,不需要指定系统文件,8C16G100G硬盘。

基础架构节点:主要有负载均衡、Apache、DNS,以及定义集群的相关文件生成和存放的位置。
bootstrap节点:一个引导节点,会临时生成一个kubernetes集群,负责openshift集群的安装,openshift安装好后,最后kubernetes集群会消失,随后这个节点也没用了。
master节点:与ocp3一样。
work节点: 与ocp3一样,不过router相关组件也运行在这上面,没有了infra这种角色的节点。

  • 网络

一台基础架构节点:172.31.20.100
一台bootstrap节点:172.31.20.101
三台master节点:172.31.20.102-104
两台worker节点:172.31.20.105-106
网关:172.31.20.254
DNS Server:172.31.0.121

基础架构节点

基础架构节点我使用 GitHub 上一个大神准备工具进行搭建,也供我们参考学习一下如何准备基础架构环境:
https://github.com/RedHatOfficial/ocp4-helpernode

在基础架构节点上安装相关环境

  • 下载github代码

注意要使用新版本的ansible,我使用的是2.9.6,否则ansible会报错ssh-key生成的问题。

yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-$(rpm -E %rhel).noarch.rpm
yum -y install ansible git
git clone https://github.com/RedHatOfficial/ocp4-helpernode
cd ocp4-helpernode
  • 准备ansible相关文件
cp docs/examples/vars.yaml .
  • 修改mac地址等相关参数如下:
---
disk: sda
helper:
  name: "helper"
  ipaddr: "172.31.20.100"
dns:
  domain: "poc.com"
  clusterid: "ocp4"
  forwarder1: "172.31.0.121"
  forwarder2: "8.8.4.4"
dhcp:
  router: "172.31.20.254"
  bcast: "172.31.20.255"
  netmask: "255.255.255.0"
  poolstart: "172.31.20.101"
  poolend: "172.31.20.109"
  ipid: "172.31.20.0"
  netmaskid: "255.255.255.0"
bootstrap:
  name: "bootstrap"
  ipaddr: "172.31.20.101"
  macaddr: "00:50:56:b7:fa:e1"
masters:
  - name: "master00"
    ipaddr: "172.31.20.102"
    macaddr: "00:50:56:b7:87:b4"
  - name: "master01"
    ipaddr: "172.31.20.103"
    macaddr: "00:50:56:b7:87:95"
  - name: "master02"
    ipaddr: "172.31.20.104"
    macaddr: "00:50:56:b7:a8:32"
workers:
  - name: "worker00"
    ipaddr: "172.31.20.105"
    macaddr: "00:50:56:b7:db:1e"
  - name: "worker01"
    ipaddr: "172.31.20.106"
    macaddr: "00:50:56:b7:29:74"
  • 先下载相关文件基础文件,再导入基础架构节点,否则在执行ansible下载非常慢
ocp_bios: "https://mirror.openshift.com/pub/openshift-v4/dependencies/rhcos/4.3/4.3.8/rhcos-4.3.8-x86_64-metal.x86_64.raw.gz"
ocp_initramfs: "https://mirror.openshift.com/pub/openshift-v4/dependencies/rhcos/4.3/4.3.8/rhcos-4.3.8-x86_64-installer-initramfs.x86_64.img"
ocp_install_kernel: "https://mirror.openshift.com/pub/openshift-v4/dependencies/rhcos/4.3/4.3.8/rhcos-4.3.8-x86_64-installer-kernel-x86_64"
ocp_client: "https://mirror.openshift.com/pub/openshift-v4/clients/ocp/4.3.8/openshift-client-linux-4.3.8.tar.gz"
ocp_installer: "https://mirror.openshift.com/pub/openshift-v4/clients/ocp/4.3.8/openshift-install-linux-4.3.8.tar.gz"
  • 将下载好的文件导入的路径,如果没有对应的路径,手动创建。
mkdir -p /var/www/html/install/
mkdir -p /var/lib/tftpboot/rhcos/
cp openshift-client-linux-4.3.8.tar.gz /usr/local/src/openshift-client-linux.tar.gz
cp openshift-install-linux-4.3.8.tar.gz /usr/local/src/openshift-install-linux.tar.gz
cp rhcos-4.3.8-x86_64-metal.x86_64.raw.gz /var/www/html/install/bios.raw.gz
cp rhcos-4.3.8-x86_64-installer-initramfs.x86_64.img /var/lib/tftpboot/rhcos/initramfs.img
cp rhcos-4.3.8-x86_64-installer-kernel-x86_64 /var/lib/tftpboot/rhcos/kernel
  • 执行ansible
ansible-playbook -e @vars.yaml tasks/main.yml
  • 查看环境的工具使用
/usr/local/bin/helpernodecheck
Usage:
helpernodecheck {dns-masters|dns-workers|dns-etcd|dns-other|install-info|haproxy|services|nfs-info}
  • 创建Ignition文件
mkdir ~/ocp4
cd ~/ocp4
mkdir -p ~/.openshift
  • 去下载pull-secret文件,然后放到~/.openshift目录下
mkdir -p ~/.openshift
  • 查看helper_rsa文件是否存在

现在的ansible会帮助我们创建密钥文件,也可以关闭:

ls -1 ~/.ssh/helper_rsa
  • 准备创建install-config文件
cd ~/ocp4
cat <<EOF > install-config.yaml
apiVersion: v1
baseDomain: poc.com
compute:
- hyperthreading: Enabled
  name: worker
  replicas: 0
controlPlane:
  hyperthreading: Enabled
  name: master
  replicas: 3
metadata:
  name: ocp4
networking:
  clusterNetworks:
  - cidr: 10.254.0.0/16
    hostPrefix: 24
  networkType: OpenShiftSDN
  serviceNetwork:
  - 172.30.0.0/16
platform:
  none: {}
pullSecret: '$(< ~/.openshift/pull-secret)'
sshKey: '$(< ~/.ssh/helper_rsa.pub)'
EOF
  • 创建manifests文件:
openshift-install create manifests
  • 将master设置为不可调度
sed -i 's/mastersSchedulable: true/mastersSchedulable: false/g' manifests/cluster-scheduler-02-config.yml
  • 创建ignition文件:
openshift-install create ignition-configs
  • 放到对应路径:
cp ~/ocp4/*.ign /var/www/html/ignition/
restorecon -vR /var/www/html/
chmod o+r /var/www/html/ignition/*.ign
  • 开始安装
openshift-install wait-for bootstrap-complete --log-level debug

漫长的等待,等待的过程中做些啥呢?

  • 登录三台虚拟机的console,看看日志它们都在干嘛
  • 从基础架构节点登录到bootstrap节点,用下面的命令查看日志,能看到安装过程中的信息:
ssh core@bootstrap
journalctl -b -f -u bootkube.service
  • 同理也可以登录master和work节点,用如下命令查看容器和镜像:
sudo podman images
sudo podman ps
sudo crictl ps
sudo crictl images
  • 切换为root
sudo su -

安装过程中其实有很多报错,但是那些报错是因为镜像没有拉取到,容器没有起来,对应的服务没有起来导致的报错,只需要等待就可以了,但是前提是得你的网络还不错。

安装结束后

  • 准备认证文件
export KUBECONFIG=/root/ocp4/auth/kubeconfig
# 或
cp ~/ocp4/auth/kubeconfig ~/.kube/config
  • 查看csr请求
oc get csr
oc get csr --no-headers | awk '{print $1}' | xargs oc adm certificate approve
oc get csr | grep 'system:node'
  • 部署nfs storageclass
helpernodecheck nfs-setup
  • 将镜像仓库设置为可管理
oc patch configs.imageregistry.operator.openshift.io cluster --type merge --patch '{"spec":{"managementState":"Managed"}}'
  • 将镜像仓库以route暴露出去
oc patch configs.imageregistry.operator.openshift.io/cluster --type merge -p '{"spec":{"defaultRoute":true}}'
  • 设置镜像仓库的存储为pvc
$ oc edit configs.imageregistry.operator.openshift.io

storage:
  pvc:
    claim:
  • 查看image-registry是否ready:
oc get clusteroperator image-registry
  • 查看pvc是否创建:
oc get pvc --all-namespaces
  • 拿到集群输出信息去登录:
openshift-install wait-for install-complete

参考链接

https://github.com/RedHatOfficial/ocp4-helpernode/blob/master/docs/quickstart.md

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269

推荐阅读更多精彩内容