准备节点

在安装 IBM® Cloud Private 之前,必须先配置服务器节点的集群。{:shortdesc}

准备集群以进行安装

在准备节点以安装 IBM Cloud Private 之前,必须先制定一些有关该集群的决策。

  1. 复查系统需求。有关软硬件需求的更多信息,请参阅系统需求
  2. 确定集群体系结构,并获取该集群中所有节点的 IP 地址。有关节点类型的更多信息,请参阅体系结构。在安装过程中,可以指定每种节点类型的 IP 地址。请记住,安装 IBM Cloud Private 之后,就可以在集群中添加或移除工作程序节点、代理节点或管理节点。
  3. 环境可能包含具有不同网络设备名称的节点,例如,enX 用于 RHEL 或 netX 用于 Ubuntu。有关 Calico 配置,请确保在网络设置中使用interface=<REGEX>,如以下示例中所示。

    interface="en.*, net.*, eth.*"
    

    :在初始设置后,如果未遇到网络中断,无法更改 Calico 网络设置。在 IBM Cloud Private 集群的初始设置之前,必须规划设置。

准备每个节点以进行安装

  1. 确保所有缺省端口都已打开,但不在使用中。任何防火墙规则都不得阻止这些端口。在安装期间,安装程序也会确认这些端口已打开。有关 IBM Cloud Private 缺省端口的更多信息,请参阅缺省端口

    要手动检查某个端口是否已打开且可用,您可以运行以下两个命令中的一个,其中,port_numbers 表示要检查的一个或多个 TCP/UDP 端口:

    • 运行 ss 命令:

       ss -tnlp | awk '{print $4}'| egrep -w "<port_numbers>"
      

      如果该端口不在使用中,那么输出为空。如果该端口在使用中,那么会显示类似于以下示例的输出:

       # ss -tnlp | awk '{print $4}' | egrep -w "8001|8500|3306"
       :::8001
       :::3306
       :::8500
      
    • 或者,如果已安装网络实用程序,请运行 netstat 命令:

       netstat -tnlp | awk '{print $4}' | egrep -w "<port_numbers>"
      

      如果该端口在使用中,那么会显示类似于以下示例的输出:

       # netstat -tnlp | awk '{print $4}' | egrep -w "8001|8500|3306"
       :::8001
       :::3306
       :::8500
      

      必须以 | 字符分隔端口号。

  2. 请确保所有节点上的所有目录均为空,并具有空间用于安装。有关更多信息,请参阅硬件需求和建议

  3. 在集群中的每个节点上配置 /etc/hosts 文件。

    1. 在每个节点上的 /etc/hosts 文件中,添加所有节点的 IP 地址和主机名。
      • 重要说明:请确保随主机名一起列出本地主机的 IP 地址。不能随主机名一起列示回送地址 127.0.0.1
      • /etc/hosts 文件中的主机名不得包含大写字母。
      • 如果集群包含单个节点,那么您必须列出其 IP 地址和主机名。
    2. 注释掉文件中以 127.0.1.1::1 localhost 开头的行。

      对于包含一个主节点、一个代理节点和两个工作程序节点的集群,/etc/hosts 文件包含与以下类似的代码:

       127.0.0.1       localhost
       # 127.0.1.1     <host_name>
       # The following lines are desirable for IPv6 capable hosts
       #::1     localhost ip6-localhost ip6-loopback
       ff02::1 ip6-allnodes
       ff02::2 ip6-allrouters
       <master_node_IP_address> <master_node_host_name>
       <worker_node_1_IP_address> <worker_node_1_host_name>
       <worker_node_2_IP_address> <worker_node_2_IP_host_name>
       <proxy_node_IP_address> <proxy_node_host_name>
      

      注:运行 IBM Cloud Private 安装流程时,所有集群节点上的 /etc/hosts 文件都会自动更新为包含 clusterName.icp 的条目。该条目与 cluster_vip 相关,但如果未设置 cluster_vip,那么与 cluster_lb_address 相关。IBM Cloud Private 使用 /etc/hosts 文件中的 clustername.icp:8500/xx/xxx 来提取 IBM Cloud Private 注册表 Docker 映像。

  4. 在每个集群节点上,必须配置到 service_cluster_ip_range 的缺省网关或路由。

    例如,如果要将路由配置为缺省 IPv4 service_cluster_ip_range,请运行以下命令:

     ip route add 10.0.0.0/16 dev eth0
    

    其中 eth0 是分配给公共 IP 地址的以太网接口。有关 service_cluster_ip_range 的更多信息,请参阅网络设置

  5. 对于 OpenStack 环境,如果 /etc/hosts 是由 cloud-init 服务来管理,那么您必须阻止 cloud-init 服务修改 /etc/hosts 文件。在 /etc/cloud/cloud.cfg 文件中,请确保 manage_etc_hosts 参数设置为 false

       manage_etc_hosts: false
    
  6. 确保集群中所有节点之间的网络连接正常。确保各个节点已连接至集群中的所有其他节点。

  7. 在集群中的每个节点上,确认已安装受支持的 Python 版本。支持 Python 2(V2.6 或 V2.7)和 Python 3(V3.5 或更高版本)。

      python --version
    

    注:如果使用 Python 3 或更高版本,那么必须在 config.yaml 文件中通过插入以下行设置 Python 解释器的位置:

     ansible_python_interpreter: /usr/bin/python3
    
  8. 对集群中每个节点的时钟进行同步。要同步您的时钟,您可以使用网络时间协议 (NTP)。有关设置 NTP 的更多信息,请参阅操作系统的用户文档。

  9. 确保在每个节点上安装 SSH 客户端。

后续操作

安装集群,请参阅安装 IBM Cloud Private