Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

第 2 章 安装 OpenShift Container Platform

2.1. 概述

本指南介绍 OpenShift Container Platform 的基本概念,并帮助您安装基本应用程序。本指南不适用于在生产环境中部署或安装 OpenShift Container Platform。

2.1.1. 先决条件

要安装 OpenShift Container Platform,您需要具备以下条件:

  • 至少两台物理的或虚拟的 RHEL 7+ 机器,具有完全限定的域名(可以是真实的域名,也可以是网络中的域名)和 无密码的 SSH 访问权限。本指南使用 master.openshift.example.comnode.openshift.example.com。这些机器必须能够使用这些域名相互 ping 通。如果您使用 IBM POWER 服务器,您的集群中的所有服务器都必须是 IBM POWER 服务器。
  • 有效的红帽订阅。
  • 可以将您的域解析到节点 IP 的通配符 DNS 解析条目。因此,您的 DNS 服务器中应该有与以下类似的条目:

    master.openshift.example.com. 300 IN A <master_ip>
    node.openshift.example.com. 300 IN A <node_ip>
    *.apps.openshift.example.com. 300 IN A <node_ip>
为什么您的域名中使用 apps 作为通配符条目?

当使用 OpenShift Container Platform 部署应用程序时,内部路由器需要将传入请求代理到对应的应用程序 pod。通过将 apps 用作应用程序域的一部分,应用程序流量会准确标记为正确的 pod。

您也可以使用 apps 以外的其他项。

*.cloudapps.openshift.example.com. 300 IN A <node_ip>

配置完成后,请按照以下步骤设置双机 OpenShift Container Platform 安装。

2.1.2. 附加 OpenShift Container Platform 订阅

  1. 作为 root 用户在目标机器(包括 master 和节点)上,使用 subscription-manager 在红帽注册系统。

    # subscription-manager register
  2. 从 Red Hat Subscription Manager(RHSM)获取最新的订阅数据:

    # subscription-manager refresh
  3. 列出可用的订阅:

    # subscription-manager list --available
  4. 查找提供和附加 OpenShift Container Platform 订阅的池 ID。

    # subscription-manager attach --pool=<pool_id>
  5. 使用提供了 OpenShift Container Platform 的池的池 ID 替换字符串 <pool_id>。池 ID 是一个长字母数字字符串。

现在,这些 RHEL 系统被授权安装 OpenShift Container Platform。现在,您需要告诉系统从哪里获取 OpenShift Container Platform。

2.1.3. 设置软件仓库

在 master 和节点上,使用 subscription-manager 启用安装 OpenShift Container Platform 所需的软件仓库(repository)。在这个示例中,您可能已经启用了前两个库。

  • 对于 x86_64 服务器中的云安装和内部安装,请运行以下命令:

    # subscription-manager repos --enable="rhel-7-server-rpms" \
        --enable="rhel-7-server-extras-rpms" \
        --enable="rhel-7-server-ose-3.11-rpms" \
        --enable="rhel-7-server-ansible-2.9-rpms"
  • 对于 IBM POWER8 服务器中的内部安装,请运行以下命令:

    # subscription-manager repos \
        --enable="rhel-7-for-power-le-rpms" \
        --enable="rhel-7-for-power-le-extras-rpms" \
        --enable="rhel-7-for-power-le-optional-rpms" \
        --enable="rhel-7-server-ansible-2.9-for-power-le-rpms" \
        --enable="rhel-7-server-for-power-le-rhscl-rpms" \
        --enable="rhel-7-for-power-le-ose-3.11-rpms"
  • 对于 IBM POWER9 服务器中的内部安装,请运行以下命令:

    # subscription-manager repos \
        --enable="rhel-7-for-power-9-rpms" \
        --enable="rhel-7-for-power-9-extras-rpms" \
        --enable="rhel-7-for-power-9-optional-rpms" \
        --enable="rhel-7-server-ansible-2.9-for-power-9-rpms" \
        --enable="rhel-7-server-for-power-9-rhscl-rpms" \
        --enable="rhel-7-for-power-9-ose-3.11-rpms"

此命令告知您的 RHEL 系统,安装 OpenShift Container Platform 所需的工具可从这些软件仓库中获得。现在,我们需要基于 Ansible 的 OpenShift Container Platform 安装程序。

注意

旧版本的 OpenShift Container Platform 3.11 仅支持 Ansible 2.6。Playbook 的最新版本现在支持 Ansible 2.9,这是首选的版本。

2.1.4. 安装 OpenShift Container Platform 软件包

OpenShift Container Platform 的安装程序由 openshift-ansible 软件包提供。在运行了 yum update 后,在 master 上使用 yum 进行安装。

# yum -y install wget git net-tools bind-utils iptables-services bridge-utils bash-completion kexec-tools sos psacct
# yum -y update
# reboot

# yum -y install openshift-ansible

现在安装一个容器引擎:

  • 安装 CRI-O:

    # yum -y install cri-o
  • 安装 Docker:

    # yum -y install docker

2.1.5. 设置无密码 SSH 访问

在 master 上运行安装程序前,请设置无密码 SSH 访问权限,因为安装程序需要它才能访问该机器。为此,请运行以下命令:

$ ssh-keygen

按照提示操作,并在被要求输入 pass phrase 时按回车键。

分发 SSH 密钥的简便方法是使用 bash loop:

$ for host in master.openshift.example.com \
    node.openshift.example.com; \
    do ssh-copy-id -i ~/.ssh/id_rsa.pub $host; \
    done

2.1.6. 运行 Installation Playbook

  1. 请参阅 清单文件实例,并选择最接近您所需集群配置的示例。

    重要

    红帽不支持使用 --tags--check 选项运行 Ansible playbook。

注意

另外,在 /usr/share/doc/openshift-ansible-docs-3.11.<version> /docs/example-inventories/ 目录(用您最新安装的 openshift-ansible-docs 软件包版本替换 <version>,这将随着 openshift-ansible 父软件包升级而更新)。如需有关可用清单变量的完整文档,请参阅配置您的清单文件

  1. 编辑示例清单,使用您的主机名,然后将其保存到文件中。默认位置是 /etc/ansible/hosts
  2. 进入 playbook 目录,并使用您的清单文件运行prerequisites.yml playbook:

    $ cd /usr/share/ansible/openshift-ansible
    $ ansible-playbook -i <inventory_file> playbooks/prerequisites.yml
  3. 进入 playbook 目录,并使用您的清单文件运行 deploy_cluster.yml playbook:

    $ cd /usr/share/ansible/openshift-ansible
    $ ansible-playbook -i <inventory_file> playbooks/deploy_cluster.yml

在安装成功后,但在添加新项目前,您必须设置基本身份验证、用户访问和路由。