红帽OpenShift安装部署

更新时间:

本最佳实践在红帽OpenShift的英文官方安装指南的基础上,提供了在阿里云上安装部署红帽OpenShift软件的中文详细指导。

前提条件

在进行本实践前,您需要完成以下准备工作:
  1. 注册阿里云账号,并完成实名认证。您可以登录阿里云控制台,并前往实名认证页面查看是否已经完成实名认证。
  2. 阿里云账户余额大于100元。您可以登录阿里云控制台,并前往账户总览页面查看账户余额。
  3. 使用阿里云账号开通以下阿里云产品:

背景信息

红帽OpenShift容器平台将开发人员和IT运维团队统一到了一个平台上,从而可以跨混合云和多云基础架构方便地构建、部署和管理应用。红帽OpenShift能够使企业在交付现代和传统应用的过程中,缩短开发周期,降低运营成本,从而取得更大收益。红帽OpenShift构建于开源创新和行业标准的基础上,包括Kubernetes和红帽企业Linux®(世界领先的企业级Linux发行版)。

红帽OpenShift提供两种安装部署方式,Installer-provisioned infrastructure(IPI)以及User-provisioned infrastructure(UPI)。本最佳实践用于指导您在阿里云上使用UPI模式bare metal方式安装部署红帽OpenShift。

本最佳实践系统架构图如下:系统架构图
产品或服务本文示例备注
专有云VPC

名称:osVPC

IPv4:192.168.0.0/16

资源组:默认资源组

法兰克福,可用区A

交换机:osVSW

IpV4:192.168.1.0/24

弹性计算ECS

名称:oslnstaller

ecs.sn2ne.large(2vCP, 8GiB)

系统盘:100GiB,按量付费

操作系统:CentOS 8.1 64-bit

地域信息:法兰克福,可用区A

私网地址:192.168.1.53

目录设置:
  • OpenShift安装文件:/mnt
  • <installation_directory>: /Install_Dir
  • <storage_directory>: /osStorage/alicloud
  • <sim_directory>: /simRoot

名称:bootstrap

ecs.sn2ne.xlarge(4vcpu, 16GiB)

系统盘:100GiB,按量付费

红帽coreOS

地域信息:法兰克福,可用区A

私网地址:192.168.1.59

名称:master0

ecs.sn2ne.xlarge(4vcpu, 16GiB)

系统盘:100GiB,按量付费

操作系统:红帽coreOS

地域信息:法兰克福,可用区A

私网地址:192.168.1.61

名称:master1

ecs.sn2ne.xlarge(4vcpu, 16GiB)

系统盘:100GiB,按量付费

操作系统:红帽coreOS

地域信息:法兰克福,可用区A

私网地址:192.168.1.62

名称:master2

ecs.sn2ne.xlarge(4vcpu, 16GiB)

系统盘:100GiB,按量付费

操作系统:红帽coreOS

地域信息:法兰克福,可用区A

私网地址:192.168.1.63

名称:worker0

ecs.sn2ne.xlarge(4vcpu, 16GiB)

系统盘:100GiB,按量付费

操作系统:红帽coreOS

地域信息:法兰克福,可用区A

私网地址:192.168.1.64

名称:worker1

ecs.sn2ne.xlarge(4vcpu, 16GiB)

系统盘:100GiB,按量付费

操作系统:红帽coreOS

地域信息:法兰克福,可用区A

私网地址:192.168.1.65

名称:worker2

ecs.sn2ne.xlarge(4vcpu, 16GiB)

系统盘:100GiB,按量付费

操作系统:红帽coreOS

地域信息:法兰克福,可用区A

私网地址:192.168.1.66

负载均衡SLB

名称:osSLB

私网类型,slb.s1.small,按流量付费

地域信息:法兰克福,可用区A

服务地址(私网):192.168.1.54

对象存储OSS

Bucket名称:ostestfrankfurt 标准存储,私有

地域信息:法兰克福,可用区A

云解析Private Zone

Private Zone名称:testos.com

地域信息:法兰克福,可用区A

名称:testos.com

关联osVPC

阿里云环境部署

首先,您需要完成阿里云上的一系列环境部署,包括专有网络VPC的创建,Installation Host的创建以及负载均衡SLB的创建。这些是您开启后续红帽OpenShift安装的必要条件。

  1. 创建VPC和vSwitch。
    1. 登录阿里云管理控制台
    2. 通过产品与服务导航,定位到专有网络VPC,单击进入专有网络VPC管理控制台。
      定位到专有网络VPC
    3. 在页面上方,选择地域为法兰克福
      选择地域
    4. 在专有网络页面,单击下方的创建专有网络
      单击创建专有网络
    5. 在创建专有网络页面,进行专有网络和交换机相关参数配置,具体配置描述见下表。
      参数配置
      类别配置项说明
      专有网络名称osVPC
      IPv4网段

      推荐网段

      192.168.0.0/16

      交换机名称osVSW
      可用区法兰克福,可用区A
      IPv4网段192.168.1.0/24
    6. 参数配置完成,单击确定
    7. 等待专有网络和交换机创建成功,单击完成
  2. 创建Installation Host。
    在您完成专有网络VPC的创建后,请继续Installation Host的创建。该服务器主要用于红帽OpenShift集群的安装,集群的登录。
    1. 登录阿里云控制台
    2. 通过产品与服务导航,定位到云服务器ECS,单击进入云服务器ECS控制台。
      定位到云服务器ECS
    3. 在左侧导航栏选择实例,地域选择为法兰克福,并单击创建实例
      创建实例
    4. 在自定义购买模式下,配置相关参数。
      配置相关参数1配置相关参数2
      类别配置项说明
      基础配置计费方式按量付费
      地域法兰克福,可用区A
      实例
      • 规格:通用网络增强型
      • 实例规格:ecs.sn2ne.large
      镜像

      公共镜像

      CentOS, 8.164-bit

      重要 此处对操作系统类型无强制要求,可选用任何的Linux操作系统。
      存储

      系统盘

      SSD100GiB

      在网络和安全组页面,参考下表,配置相关参数。

      类别配置项说明
      网络和安全组网络

      专有网络

      选择在第1章中创建的VPC (osVPC)和交换机(osVSW)

      公网带宽
      • 勾选分配公网IPv4地址
      • 付费模式:按使用流量
      • 公网带宽:5Mbps
      安全组选择默认安全组

      配置完成,单击下一步:系统配置。

      系统配置
    5. 在系统配置页面,配置相关参数。
      配置相关参数
    6. 单击确认订单
    7. 在确认订单页面,确认各项参数信息。确认无误,阅读、同意并勾选《云服务器ECS 服务条款》,并单击创建实例
      创建实例
    8. 创建任务提交成功后,单击管理控制台前往服务器实例列表页面查看详情。
      实例列表
  3. 创建负载均衡SLB。
    1. 登录阿里云控制台
    2. 通过产品与服务导航,定位到负载均衡SLB,单击进入负载均衡SLB控制台。
      定位到负载均衡SLB
    3. 在左侧导航栏选择实例 > 实例管理,单击创建负载均衡
      创建负载均衡
    4. 在负载均衡SLB(按量购买)页面,配置相关参数,并单击立即购买
      类别配置项说明
      购买配置付费方式按量付费
      地域欧洲与美洲,法兰克福,可用区A
      实例
      • 规格:简约型
      • 实例规格:slb.s1.small
      实例类型私网
      专有网络osVPC
      配置相关参数
    5. 在负载均衡SLB控制台,单击刚刚创建的osSLB,添加如下TCP端口监听。
      添加TCP端口监听添加监听

红帽OpenShift集群安装准备

  1. 在Installation Host上创建SSH私有key并添加到代理。
    1. 使用Putty等工具,以root账号用户名密码,通过公网IP,登录Installation Host osInstaller。
    2. 运行以下命令:
      $ cd ~/.ssh
      $ ssh-keygen -t rsa -b 4096 -N '' –f id_rsa
      $ eval "$(ssh-agent -s)"
  2. 在Installation Host上获取红帽 OpenShift安装程序。
    1. 使用您的红帽账号登录Infrastructure Provider页面,选择Run on Bare Metal
      登录红帽账号
    2. 根据您的操作系统(Linux,MaxOS)选择download Installer。本最佳实践中选择Linux。
    3. 将上一步骤中下载好的安装包上传到InstallationHostosInstaller,并进行解压缩。
      重要 建议您将所有的OpenShift相关安装程序放到统一目录方便管理,本最佳实践中我们都放在/mnt目录中。
      $ tar xvf <installation_program>.tar.gz
    4. Infrastructure Provider页面,选择copy pull secret并保存。
  3. 在Installation Host上安装cli客户端。
    1. Infrastructure Provider页面,选择Download command-line tools。
    2. 将步骤1下载好的安装包上传到InstallationHostosInstaller,并进行解压缩。
      重要 本最佳实践中,我们将该其解压缩到/mnt目录。
    3. 将该oc执行文件所在的目录设置成系统环境变量,从而方便之后运行oc命令。您可以通过修改您当前用户的profile文件来达到此效果。
    4. 完成上述操作后,您可以在Installation Host上执行如下oc命令来检查安装是否成功:
      $ .oc <command>
  4. 在Installation Host上创建安装配置文件install-config.yaml。
    1. 使用Putty等工具,以root账号用户名密码,通过公网IP,登录Installation Host osInstaller。
    2. 在/mnt创建install-config.yaml文件,文件内容如下:
      apiVersion: v1
      baseDomain: testos.com1
      compute:
      -hyperthreading: Enabled
       name: worker
       replicas: 0
      controlPlane:
       hyperthreading: Enabled
       name: master
       replicas: 32
      metadata:
       name: alicloud3
      networking:
       clusterNetwork:
       -cidr: 10.128.0.0/14
        hostPrefix: 23
       networkType: OpenShiftSDN
       serviceNetwork:
       -172.30.0.0/16
      platform:
       none: {}
      fips: false
      pullSecret: '{"auths": ...}' 4
      sshKey: 'ssh-ed25519 AAAA...'5

      点击查看安装配置文件详情

  5. 在Installation Host上创建Kubernetes manifest以及Ignition文件。
    1. 使用Putty等工具,以root账号用户名密码,通过公网IP,登录Installation Host osInstaller。
    2. 运行以下命令:
      $ mkdir <installation_directory>
      $ cd /mnt
      $ cp install-config.yaml <installation_directory>
      $ ./openshift-install create manifests --dir=<installation_directory>
      INFO Consuming Install Config from target directory
      WARNING Making control-plane schedulable by setting MastersSchedulable to true for Scheduler cluster settings
      重要 本最佳实践中,<installation_directory> 为/Installation_Dir。
    3. 修改/Install_Dir/manifests/cluster-scheduler-02-config.yml文件中的参数mastersSchedulable为False来防止Pods在控制部分被启动。
    4. 运行以下命令来生成ignition配置文件:
      ./openshift-install create ignition-configs --dir=<installation_directory>
      重要 本最佳实践中,<installation_directory> 为/Installation_Dir。

      您会发现下述文件在/Install_Dir目录中被生成:

      .
      ├──auth
      │└──kubeadmin-password
      │└──kubeconfig
      ├──bootstrap.ign
      ├──master.ign
      ├──metadata.json
      └──worker.ign
      重要 创建完ignition文件后,必须在24小时内完成OpenShift集群的创建,否则证书会过期失效。
  6. 在Installation Host上创建各节点配置文件目录。
    1. 使用Putty等工具,以root账号用户名密码,通过公网IP,登录Installation Host osInstaller。
    2. 通过mkdir命令手动创建目录<sim_directory>,并新创建各个节点的配置文件放置在相应的目录中。本最佳实践中,我们使用/simRoot目录,并创建如下文件体系:
      ├──bootstrap
      │├──etc
      │
      └──hostname
      │
      └──resolv.conf
      │
      ├──sysconfig
      │
      ├──network-scripts
      │
      └──
      │
      ├──NetworkManager
      │
      └──
      NetworkManager.conf
      ├──master0
      …
      同上
      ├──master1
      …
      同上
      ├──master2
      …
      同上
      ├──worker0
      …
      同上
      ├──worker1
      …
      同上
      ├──worker2
      …
      同上

      此处,我们以bootstrap节点为例,各文件内容如下。其他节点的文件内容与之一致。

      [root@osInstaller etc]# pwd
      /simRoot/bootstrap/etc
      [root@osInstaller etc]# cat hostname
      bootstrap
      [root@osInstaller etc]# cat resolv.conf
      domain alicloud.testos.com
      nameserver 100.100.2.136
      nameserver 100.100.2.138
      [root@osInstaller etc]# cat NetworkManager/NetworkManager.conf
      红帽OpenShift 安装部署最佳实践
      [main]
      dns=none
      [root@osInstaller etc]# cat sysconfig/network-scripts/ifcfg-ens3
      BOOTPROTO=dhcp
      DEVICE=ens3
      PEERDNS=yes
      ONBOOT=yes
      STARTMODE=auto
      TYPE=Ethernet
      USERCTL=no

制作coreOS镜像

红帽OpenShift集群的节点只支持coreOS操作系统,目前阿里云上还没有该系统的镜像,请使用如下方法来制作您的阿里云自定义镜像。本方法需要在您的一台物理机上使用KVM虚拟机,用于制作镜像。请确保本物理机能够访问公网。

  1. 打开coreOS页面,选择下载rhcos-<latest version>-x86_64-installer.x86_64.iso
    以及rhcos-<latest version>-x86_64-metal.x86_64.raw.gz,并将rhcos-<latest version>-x86_64-metal.x86_64.raw.gz上传到阿里云OSS bucket ostestfrankfurt,将rhcos-<latest version>-x86_64-installer.x86_64.iso文件上传到您本地的物理机上。
  2. 为了使用KVM虚拟机,您的物理机需要libvirt等相关组件,可以通过运行如下命令在该物理机上进行安装:
    $ yum -y install qemu-img qemu-kvm  libvirt
    $ systemctl  start libvirtd
  3. 在该物理机上运行如下命令来生成需要制作的qcow2格式的镜像。本最佳实践中,我们选定/disk1/openshift/目录来存放和生成所有镜像相关的文件。
    $ cd /disk1/openshift/
    $ qemu-img create -f qcow2  openshift.qcow2  <image_size>
    重要 您可以依据实际情况来配置<image_size>的大小,本最佳实践中使用20G。
  4. 在该物理机的/disk1/openshift/目录中创建openshift.xml,用于启动虚拟机。请注意qcow2类型及iso文件的路径。
    <domain type='kvm' id='2'>
      <name>openshift</name>
      <memory unit='KiB'>8388608</memory>
      <currentMemory unit='KiB'>8388608</currentMemory>
      <vcpu placement='static' cpuset='4-31' current='4'>4</vcpu>
      <cpu mode='host-passthrough'>
        <topology sockets='1' cores='4' threads='1'/>
      </cpu>
      <os>
        <type arch='x86_64' machine='pc'>hvm</type>
        <boot dev='hd'/>
        <boot dev='cdrom' />
      </os>
      <features>
        <acpi/>
        <apic/>
        <pae/>
        <hap/>
      </features>
      <clock offset='localtime'>
        <timer name='hpet' present='no'/>
      </clock>
      <on_poweroff>destroy</on_poweroff>
      <on_reboot>restart</on_reboot>
      <on_crash>restart</on_crash>
      <devices>
        <emulator>/usr/bin/qemu-kvm</emulator>
        <disk type='file' device='disk'>
          <driver name='qemu' type='qcow2'/>
        <source file='/disk1/openshift/openshift.qcow2'/>
          <target dev='vda' bus='virtio'/>
      </disk>
      <disk type='file' device='cdrom'>
        <driver name='qemu' type='raw'/>
          <source file='/disk1/openshift/rhcos-4.3.8-x86_64-
    installer.x86_64.iso'/>
        <target dev='hdc' bus='ide'/>
        <readonly/>
        <address type='drive' controller='0' bus='1' target='0' unit='0'/>
    </disk>
      <interface type='bridge'>
        <source bridge='virbr0'/>
        <target dev='vnet0'/>
        <model type='virtio'/>
      </interface>
      <input type='tablet' bus='usb'>
        <alias name='input0'/>
      </input>
      <graphics type='vnc' port='5900' autoport='yes' listen='0.0.0.0' keymap='en-
    us'>
          <listen type='address' address='0.0.0.0'/>
        </graphics>
      </devices>
    </domain>
  5. 创建shadow.ign文件,内容如下,并将其上传到阿里云OSS bucket ostestfrankfurt。
    {
      "ignition": {
        "config": {
          "append": [{
            "source": "<shadow_static.ignURL>",
            "verification": {}
          }]
        },
        "timeouts": {},
        "version": "2.1.0"
      },
      "networkd": {},
      "passwd": {},
      "storage": {},
      "systemd": {}
    }
    重要 < shadow_static.ign URL>为您OSSbucket下shadow_static.ign文件的URL,本最佳实践中为https://ostestfrankfurt.oss- eu-central-1.aliyuncs.com/shadow_static.ign
  6. 在该物理机上执行命令virsh create openshift.xml来启动虚拟机。使用vnc连接虚拟机,当出现如下的安装界面时,按Tab键。
    安装界面

    输入如下启动参数:

    ip=dhcp coreos.inst.install_dev=sda coreos.inst.image_url=<raw gz file URL> coreos.inst.ignition_url=<shadow ign file URL>
    重要 在本最佳实践中,<raw gz file URL>为https://ostestfrankfurt.oss-eu-central-1.aliyuncs.com/rhcos-4.3.8-x86_64-metal.x86_64.raw.gz,<shadow ign file URL>为https://ostestfrankfurt.oss-eu-central-1.aliyuncs.com/shadow.ign。

    请务必确保安装过程中,您的OSS bucket里没有shadow_static.ign文件。安装过程会使用shadown.ign初始化系统,因shadow.ign指向的source文件不存在,故而安装到最后会卡住,此时执行virsh destroy openshift,销毁虚拟机。这时openshift.qcow2的制作就完成了。

  7. 将上述创建好的openshift.qcow2文件上传到阿里云OSS bucket ostestfrankfurt。
  8. 导入镜像。
    1. 登录阿里云控制台
    2. 通过产品与服务导航,定位到云服务器ECS,单击进入云服务器ECS控制台。
      定位到云服务器ECS
    3. 在左侧导航栏选择实例与镜像 > 镜像,并单击手动导入镜像
      手动导入镜像
    4. 在镜像导入页面,配置相关参数,并单击确定
      类别配置项说明
      镜像导入ossobject 地址您制作好的qcow2镜像在oss URL
      重要 本最佳实践中地址为 https://ostestfrankfurt.oss-eu-central-1.aliyuncs.com/openshift.qcow2
      镜像名称openshiftImage
      操作系统Linux
      系统架构X86_64
      系统平台RedHat
      镜像格式QCOW2
      许可证类型自动
      配置相关参数镜像列表

创建和配置红帽 OpenShift集群

  1. 在Installation Host上创建bootstrap定制ignition配置文件。
    1. 使用Putty等工具,以root账号用户名密码,通过公网IP,登录Installation Host osInstaller。
    2. GitHub下载工具filetranspiler,并解压缩到目录/mnt
    3. 阿里云官网下载ossutil,并解压缩到目录/mnt
    4. 运行如下命令:
      $ cd /mnt
      $ .filetranspile –I <installation_directory> /bootstrap.ign –f \
       <sim_directory>/bootstrap –o <installation_directory> /shadow_static.ign
      $./ossutil64 config
      $./ossutil64 cp <installation_directory> /shadow_static.ign oss://ostestfrankfurt
      重要 本最佳实践中,<installation_directory> 为/Installation_Dir,<sim_directory>为/simRoot。
  2. 创建bootstrap节点。
    1. 登录阿里云控制台
    2. 通过产品与服务导航,定位到云服务器ECS,单击进入云服务器ECS控制台。
      云服务器ECS控制台
    3. 在左侧导航栏选择实例,地域选择为法兰克福,并单击创建实例
      创建实例
    4. 在自定义购买模式下,配置相关参数。
      类别配置项说明
      基础配置计费方式按量付费
      地域法兰克福,可用区
      实例
      • 规格:通用网络增强型
      • 实例规格:ecs.sn2ne.xlarge
      镜像

      自定义镜像

      openshiftImage

      重要 此处选择Error! Reference source not found.中创建coreOS镜像。
      存储

      系统盘

      SSD100GiB

      配置相关参数

      在网络和安全组页面,参考下表,配置相关参数。

      类别配置项说明
      网络和安全组网络专有网络
      安全组选择默认安全组

      配置完成,单击下一步:系统配置。

      系统配置
    5. 在系统配置页面,配置相关参数。
      重要 尽管此处选择了密码登录,但是coreOS强制要求密钥登录。SSH的private key信息已经保存到步骤4的install_config.yaml 文件中。
      配置相关参数
    6. 单击确认订单
    7. 在确认订单页面,确认各项参数信息。确认无误,阅读、同意并勾选《云服务器ECS 服务条款》复选框,并单击创建实例
      创建实例
    8. 创建任务提交成功后,单击管理控制台前往服务器实例列表页面查看详情。
      查看实例列表
  3. 创建master和worker节点。

    在您完成bootstrap机器创建后,请务必为每一个master和worker节点(本最佳实践中共6个,3个master,3个worker)按照顺序重复步骤12的操作来创建定制ignition文件和ECS。

    重要 务必要在为一个节点生成shadow_static.ign文件,上传到OSS,并创建完ECS后再进行下一个节点的重复操作,否则会导致后续集群安装失败。

    在InstallationHostosInstaller上生成定制ignition配置文件的命令分别为:

    $ .filetranspile –I <installation_directory> /master.ign –f \
      <sim_directory>/master0–o <installation_directory> /shadow_static.ign
    $ .filetranspile –I <installation_directory> /master.ign –f \
      <sim_directory>/master1–o <installation_directory> /shadow_static.ign
    $ .filetranspile –I <installation_directory> /master.ign –f \
      <sim_directory>/master2–o <installation_directory> /shadow_static.ign
    $ .filetranspile –I <installation_directory> /worker.ign –f \
      <sim_directory>/worker0–o <installation_directory> /shadow_static.ign
    $ .filetranspile –I <installation_directory> /worker.ign –f \
      <sim_directory>/worker1 –o <installation_directory> /shadow_static.ign
    $ .filetranspile –I <installation_directory> /worker.ign –f \
      <sim_directory>/worker2 –o <installation_directory> /shadow_static.ign
    重要 本最佳实践中,<installation_directory> 为/Installation_Dir,<sim_directory>为/simRoot。

    当您完成上述所有操作后,您可以在ECS控制台看到1台bootstrap,3台master以及3台worker ECS创建成功。

    查看创建实例
  4. 添加负载均衡默认服务器组。
    1. 登录阿里云控制台
    2. 通过产品与服务导航,定位到负载均衡SLB,单击进入负载均衡SLB控制台。
      进入负载均衡SLB
    3. 在左侧导航栏选择实例 > 实例管理,选择此前创建的osSLB实例,并单击添加后端服务器
      添加后端服务器
    4. 勾选此前创建的bootstrap,master以及worker节点,单击下一步,并单击添加
      配置端口和权重配置服务器
  5. 配置云解析Private Zone。
    1. 登录阿里云管理控制台
    2. 通过产品与服务导航,定位到云解析DNS,单击进入云解析DNS管理控制台。
      进入云解析DNS控制台
    3. 在左侧导航栏选择PrivateZone,单击添加Zone。并输入Zone名称为:testos.com
      添加Zone1添加Zone2
    4. 选择上述创建的Private Zone,并单击关联VPC。选择关联osVPC
      关联osVPC关联VPC
    5. 单击创建的testos.com进入设置页面,并单击添加记录
      选择添加记录
    6. 按照如下配置来添加记录。
      记录类型主机记录记录值TTL值(秒)
      Abootstrap.alicloud192.168.1.5960
      Aworker2.alicloud192.168.1.6660
      Aworker1.alicloud192.168.1.6560
      Aworker0.alicloud192.168.1.6460
      Amaster0.alicloud192.168.1.6160
      Amaster1.alicloud192.168.1.6260
      Amaster2.alicloud192.168.1.6360
      A*.apps.alicloud192.168.1.5460
      Aapi-int.alicloud192.168.1.5460
      Aapi.alicloud192.168.1.5460
      Aetcd-2.alicloud192.168.1.6360
      Aetcd-1.alicloud192.168.1.6260
      Aetcd-0.alicloud192.168.1.6160
      SRV_etcd-server-ssl._tcp.alicloud0 10 2380 etcd-2.alicloud.testos.com86400
      SRV_etcd-server-ssl._tcp.alicloud0 10 2380 etcd-1.alicloud.testos.com86400
      SRV_etcd-server-ssl._tcp.alicloud0 10 2380 etcd-0.alicloud.testos.com86400
      解析设置解析设置1
  6. 登录集群检查安装结果。
    1. 使用Putty等工具,以root账号用户名密码,通过公网IP,登录Installation Host osInstaller。
    2. 运行以下命令来检查bootstrap进展:
      $ ./openshift-install --dir=<installation_directory> wait-for\bootstrap-complet
      e --log-level=info
      INFO Waiting up to 30m0s for the Kubernetes API at https://api.alicloud.testos.com...
      INFO API v1.16.2 up
      INFO Waiting up to 30m0s for bootstrapping to complete...
      INFO It is now safe to remove the bootstrap resources
      说明 本最佳实践中,<installation_directory> 为/Installation_Dir。
    3. bootstrap过程结束后,您可以从负载均衡SLB中移除bootstrap。
    4. bootstrap过程结束后,您可以通过设置KUBECONFIG环境变量来登录红帽OpenShift集群。Kubeconfig文件是在红帽OpenShift安装过程中创建的。用于通过CLI来登录集群和API server。
      $ export KUBECONFIG=<installation_directory>/auth/kubeconfig
    5. 运行以下命令来检查oc命令可以成功执行:
      $ oc whoami
      system:admin
    6. 运行以下命令来确认集群识别出所有节点。
      $ oc get nodes
      NAME      STATUS   ROLES    AGE   VERSION
      master0   Ready    master   4d  v1.16.2
      master1   Ready    master   4d    v1.16.2
      master2   Ready    master   4d    v1.16.2
      worker0   Ready    worker   4d    v1.16.2
      worker1   Ready    worker   4d    v1.16.2
      worker2   Ready    worker   4d    v1.16.2
    7. 运行以下命令来检查集群的所有组件可用:
      $ watch -n5 oc get clusteroperators
      检查集群所有组件
  7. Image Registry配置。
    最新的红帽OpenShiftImage Registry Operator默认设置为Removed,以保证在所有平台上安装成功。故而在集群安装完成后,需要修改Image Registry配置。
    1. 登录阿里云控制台
    2. 通过产品与服务导航,定位到云服务器ECS,单击进入云服务器ECS控制台。
      进入云服务器ECS控制台
    3. 在左侧导航栏选择存储与快照 > 云盘,单击创建云盘
      创建云盘
    4. 在云盘购买页面,配置相关参数,并单击购买
      类别配置项说明
      云盘是否挂载挂在到ECS实例
      地域法兰克福osInstaller
      云盘付费方式按量付费
      存储SSD云盘200GiB
      配置相关参数
    5. 使用Putty等工具,以root账号用户名密码,通过公网IP,登录Installation Host osInstaller。
    6. 执行以下命令:
      $ fdisk /dev/vdb
      $ mkfs.xfs /dev/vdb1
      $ mkdir <storage_directory>
      $ echo /dev/vdb1 <storage_directory> xfs defaults 0 0 >> /etc/fstab
      $ echo /dev/vdb1 /osStorage xfs defaults 0 0 >> /etc/exports
      $ systemctl start nfs-server.service
      $ systemctl start rpcbind
      $ mkdir <storage_directory>/alicloud
      $ chmod 777 <storage_directory>/alicloud
      $ exportfs –rv
      $ systemctl reload nfs-server.service
      $ oc create -f -<<EOF
      apiVersion: v1
      kind: PersistentVolume
      metadata:
        name: registry
      spec:
        capacity:
          storage: 100Gi
        accessModes:
        -ReadWriteMany
        nfs:
          path: <storage_directory>/alicloud
          server: <IP address of Installation Host>
        persistentVolumeReclaimPolicy: Retain
      EOF
      $ oc get pv
      NAME       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM
            STORAGECLASS   REASON   AGE
      registry   100Gi      RWX            Retain           Bound    openshift-image-re
      gistry/image-registry-storage
      重要 本最佳实践中,<storage_directory> 为/osStorage. 如果您的系统里没有安装nfs-server请使用yum in nfs-util*命令来安装。<IP address of Installation Host> 为192.168.1.53。
    7. 运行以下命令来修改registry配置,请确保claim值为空。
      $ oc edit configs.imageregistry.operator.openshift.io
      storage:
        pvc:
        claim:
    8. 运行以下命令来检查ImageRegistry配置:
      $ oc get clusteroperator image-registry
      NAME             VERSION   AVAILABLE   PROGRESSING   DEGRADED   SINCE
      image-registry   4.3.12    True        False         False      29h
  8. 完成红帽OpenShift集群的安装和配置。
    1. 使用Putty等工具,以root账号用户名密码,通过公网IP,登录Installation Host osInstaller。
    2. 运行以下命令:
      $ ./openshift-install --dir=<installation_directory> wait-for install-complete
      INFO Waiting up to 30m0s for the cluster at https://api.alicloud.testos.com:6443 to initialize...
      INFO Waiting up to 10m0s for the openshift-console route to be created...
      INFOInstall complete!
      INFO To access the cluster as the system:admin user when using 'oc', run 'export KUBECONFIG=/Install_Dir/auth/kubeconfig'
      INFO Access the OpenShift web-console here: https://console-openshift-console.apps.alicloud.testos.com
      INFO Login to the console with user: kubeadmin,
      重要 请妥善保存您的OpenShift集群web console地址及用户名密码,我们在后续章节中会用到。

校验红帽 OpenShift集群安装结果

红帽OpenShift安装完成后,我们得到了其web console的地址,在本章节中我们将在其web console上进行安装的校验以及应用的创建。您需要在Installation Host上安装网页浏览器应用,或者在本vpcosVPC内创建一个windows跳转机。

  1. 在Installation Host上检查集群运行状态。
    1. 使用Putty等工具,以root账号用户名密码,通过公网IP,登录Installation Host osInstaller。
    2. 打开网页并输入此前得到的web console地址https://console-openshift-console.apps.alicloud.testos.com。
    3. 使用此前得到的用户名密码登录。登录成功后,您将看到如下集群信息:
      登录查看集群信息
    4. 您可以在administrator视图查看集群的各项属性,我们以此前创建的storage为例:
      查看集群的各项属性
  2. 创建应用。
    1. 使用Putty等工具,以root账号用户名密码,通过公网IP,登录Installation Host osInstaller。
    2. 打开网页并输入此前得到的web console地址https://console-openshift-console.apps.alicloud.testos.com。
    3. 使用此前得到的用户名密码登录。
    4. 在administrator视图,在左侧导航栏选择home > project,并单击创建Create Project。输入Name为demoProject。
      创建Create Projectdemoproject
    5. 切换视图为Developer,在左侧导航栏选择+add,切换project为我们刚刚创建的demoproject,选择FromCatalog
      选择From Catalog
    6. 在应用列表中,选择Apache HTTP Server (httpd),并单击Create Application
      Create Application
    7. 等待安装部署完成,该过程约耗时1~3分钟。之后您会看到应用部署成功。
      应用部署成功
    8. 打开该应用的网址。
      应用网址

名词解释

  • 云服务器

    云服务器ECS(Elastic Compute Service)是一种简单高效、处理能力可弹性伸缩的计算服务。ECS帮助您构建更稳定、安全的应用,提升运维效率,降低IT成本,使您更专注于核心业务创新。

  • 专有网络

    专有网络VPC(Virtual Private Cloud)是用户基于阿里云创建的自定义私有网络,不同的专有网络之间二层逻辑隔离,用户可以在自己创建的专有网络内创建和管理云产品实例,比如ECS、负载均衡、RDS等。

  • 负载均衡

    负载均衡SLB是多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。

  • 云解析Private Zone

    云解析PrivateZone,是基于阿里云专有网络VPC(Virtual Private Cloud)环境的私有域名解析和管理服务。可以在自定义的一个或多个专有网络中快速构建DNS系统,实现私有域名映射到IP资源地址。

  • 对象存储OSS

    海量、安全、低成本、高可靠的云RESTful API可以在互联网任何位置存储和访问,容量和处理能力弹性扩展,多种存储类型供选择全面优化存储成本。

  • 红帽OpenShift

    红帽®OpenShift®是一个企业就绪型Kubernetes容器平台,可以实现全堆栈自动化运维,以管理混合云和多云部署。红帽OpenShift已进行过优化,可以提高开发人员的生产力并推动创新。