2019-07-02-openshift origin 3.11 在线安装

采用单节点模式,在centos7.4安装openshift3.11社区版,环境需联网。 若离线安装,提前拉好源和镜像。

官方文档 https://docs.okd.io/3.11/install/host_preparation.html

配置环境

1. 系统配置

操作系统: centos 7.4 mini install,最小化安装 虚机配置: 2核 8G 网卡配置IP netmask gateway dns

2. 设置主机名及配置ssh免密

# 设置主机名
hostnamectl set-hostname origin311.localpd.com

# /etc/hosts 增加一行,把IP换成自己虚机的
172.16.160.13 origin311.localpd.com

# 配置ssh免密
ssh-keygen   # 一路敲回车
ssh-copy-id origin311.localpd.com # 输入密码
ssh origin311.localpd.com hostname -i # 验证免密

3. 更新yum源及设置selinux

注意此处不要用官方的epel源,那个ansible是2.8.0的,按照官方文档,ansible版本需不低于2.5.7,不支持2.8.0,此处自己添加ansible源,安装2.7.4

docker安装配置

1. docker 安装

yum install docker-1.13.1

Verify that version 1.13 was installed:

2. docker 独立存储配置,需要独立sdb磁盘,POC和测试环境忽略这步

停止docker服务

配置/etc/sysconfig/docker-storage-setup

初始化docker存储启动docker

最后通过docker info去查看存储相关的配置进行验证

注意点 如果此前这块盘被使用过,创建了pv,vg,lv,需依次删除lv、vg、pv,然后再使用fdisk删除sdb1分区,执行partprobe,最后再执行docker-storage-setup。 如果pv删了,vg删不掉,重启下系统。 在使用一块盘、分区、VG,lv默认使用的是所在VG的40%空间,这个要看具体 执行docker-storage-setup报错如下错误时,将WIPE_SIGNATURES=true追加至/etc/sysconfig/docker-storage-setup文件后。

ERROR: Found dos signature on device /dev/sdb at offset 0x1fe. Wipe signatures using wipefs or use WIPE_SIGNATURES=true and retry.

如果再次执行docker-storage-setup还会报如下错,删除/etc/sysconfig/docker-storage文件再次执行即可。

docker-storage-setup

3. 启动docker服务

修改docker配置 /etc/sysconfig/docker 替换之前的OPTIONS

openshift安装

1. 下载ansible 脚本

2. 准备ansible hosts文件

3. 执行安装脚本

确认部署结果

4. 部署FAQ,异常处理

  1. 部署报错 Install docker excluder - yum

TASK [openshift_excluder : Install docker excluder - yum] fatal: [node2.ocp311origin.com]: FAILED! => {"attempts": 3, "changed": false, "msg": "Failure talking to yum: 'ascii' codec can't encode characters in position 173-177: ordinal not in range(128)"}

这个报错,是因为脚本部署过程修改了/etc/resolv.conf 中nameserver,改成了本地IP,而dnsmasq未正常启动,不能访问外部域名,nameserver 被改成本地IP,这个是正常的,只要dnsmasq服务正常,就没有问题,之前的dns配置文件被移到了 /etc/dnsmasq.d/origin-upstream-dns.conf 查看dnsmasq服务发现报错信息,手动启动dnsmasq起不来,和dbus有关,可能是部署过程更新了dbus导致异常。

解决方法:重启dbus,然后重启dnsmasq并查看dnsmasq状态,还不行就重启操作系统。

  1. 部署报错 Wait for control plane pods to appear

TASK [openshift_control_plane : Wait for control plane pods to appear] ** Wednesday 29 May 2019 16:09:27 +0800 (0:00:00.098) 0:06:23.053 * FAILED - RETRYING: Wait for control plane pods to appear (60 retries left).

ansible版本问题,2.8.0 版本会卡在这地方,2.7.4正常,在github上官方有说明,不低于2.5.7,并且低于2.8.0 解决方法: 更换ansible版本,如果严格执行上述步骤,ansible版本应该是正确的,不会出现此问题  部署停留在Verify that the console is running

  1. TASK [openshift_web_console : Verify that the console is running] *

    Thursday 30 May 2019 14:04:12 +0800 (0:00:00.109) 0:04:22.223 **

    1. Hosts: origin311.localpd.com

      Play: OpenShift Metrics

      Task: openshift_metrics : fail

      Message: 'keytool' is unavailable. Please install java-1.8.0-openjdk-headless on the control node

      Failure summary:

  2. Hosts: origin311.localpd.com

    Play: OpenShift Metrics

    Task: generate htpasswd file for hawkular metrics

    Message: This module requires the passlib Python library

解决方法: 因为装metrics需要 yum install java-1.8.0-openjdk-headless python-passlib

Last updated