第 2 章 安装 OpenShift Container Platform
2.1. 概述
本指南介绍 OpenShift Container Platform 的基本概念,并帮助您安装基本应用程序。本指南不适用于在生产环境中部署或安装 OpenShift Container Platform。
2.1.1. 先决条件
要安装 OpenShift Container Platform,您需要具备以下条件:
-
至少两台物理的或虚拟的 RHEL 7+ 机器,具有完全限定的域名(可以是真实的域名,也可以是网络中的域名)和 无密码的 SSH 访问权限。本指南使用
master.openshift.example.com
和node.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>
当使用 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 订阅
作为 root 用户在目标机器(包括 master 和节点)上,使用
subscription-manager
在红帽注册系统。# subscription-manager register
从 Red Hat Subscription Manager(RHSM)获取最新的订阅数据:
# subscription-manager refresh
列出可用的订阅:
# subscription-manager list --available
查找提供和附加 OpenShift Container Platform 订阅的池 ID。
# subscription-manager attach --pool=<pool_id>
-
使用提供了 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
请参阅 清单文件实例,并选择最接近您所需集群配置的示例。
重要红帽不支持使用
--tags
或--check
选项运行 Ansible playbook。
另外,在 /usr/share/doc/openshift-ansible-docs-3.11.<version> /docs/example-inventories/ 目录(用您最新安装的 openshift-ansible-docs 软件包版本替换 <version>
,这将随着 openshift-ansible 父软件包升级而更新)。如需有关可用清单变量的完整文档,请参阅配置您的清单文件。
- 编辑示例清单,使用您的主机名,然后将其保存到文件中。默认位置是 /etc/ansible/hosts。
进入 playbook 目录,并使用您的清单文件运行prerequisites.yml playbook:
$ cd /usr/share/ansible/openshift-ansible $ ansible-playbook -i <inventory_file> playbooks/prerequisites.yml
进入 playbook 目录,并使用您的清单文件运行 deploy_cluster.yml playbook:
$ cd /usr/share/ansible/openshift-ansible $ ansible-playbook -i <inventory_file> playbooks/deploy_cluster.yml
在安装成功后,但在添加新项目前,您必须设置基本身份验证、用户访问和路由。