8.4. 安装程序置备的安装后配置


成功部署安装程序置备的集群后,请考虑以下安装后的步骤。

8.4.1. 为断开连接的集群配置 NTP(可选)

OpenShift Container Platform 在集群节点上安装 chrony 网络时间协议(NTP)服务。使用以下步骤在 control plane 节点上配置 NTP 服务器,并在部署成功后将 worker 节点配置为 control plane 节点的 NTP 客户端。

OpenShift Container Platform 节点必须同意正确运行的日期和时间。当 worker 节点从 control plane 节点上的 NTP 服务器检索日期和时间时,它会启用没有连接到可路由网络的集群的安装和操作,因而无法访问较高级别的 NTP 服务器。

流程

  1. 创建 Butane 配置(99-master-chrony-conf-override.bu),包括 control plane 节点的 chrony.conf 文件的内容。

    注意

    有关 Butane 的信息,请参阅"使用 Butane 创建机器配置"。

    Butane 配置示例

    variant: openshift
    version: 4.8.0
    metadata:
      name: 99-master-chrony-conf-override
      labels:
        machineconfiguration.openshift.io/role: master
    storage:
      files:
        - path: /etc/chrony.conf
          mode: 0644
          overwrite: true
          contents:
            inline: |
              # Use public servers from the pool.ntp.org project.
              # Please consider joining the pool (https://www.pool.ntp.org/join.html).
    
              # The Machine Config Operator manages this file
              server openshift-master-0.<cluster-name>.<domain> iburst 1
              server openshift-master-1.<cluster-name>.<domain> iburst
              server openshift-master-2.<cluster-name>.<domain> iburst
    
              stratumweight 0
              driftfile /var/lib/chrony/drift
              rtcsync
              makestep 10 3
              bindcmdaddress 127.0.0.1
              bindcmdaddress ::1
              keyfile /etc/chrony.keys
              commandkey 1
              generatecommandkey
              noclientlog
              logchange 0.5
              logdir /var/log/chrony
    
              # Configure the control plane nodes to serve as local NTP servers
              # for all worker nodes, even if they are not in sync with an
              # upstream NTP server.
    
              # Allow NTP client access from the local network.
              allow all
              # Serve time even if not synchronized to a time source.
              local stratum 3 orphan

    1
    您必须将 <cluster-name> 替换为集群的名称,并将 <domain> 替换为完全限定域名。
  2. 使用 Butane 生成 MachineConfig 对象文件 99-master-chrony-conf-override.yaml,包含要传送到 control plane 节点的配置:

    $ butane 99-master-chrony-conf-override.bu -o 99-master-chrony-conf-override.yaml
  3. 为引用 control plane 节点上的 NTP 服务器的 worker 节点创建 Butane 配置 99-worker-chrony-conf-override.bu,包括 chrony.conf 文件的内容。

    Butane 配置示例

    variant: openshift
    version: 4.8.0
    metadata:
      name: 99-worker-chrony-conf-override
      labels:
        machineconfiguration.openshift.io/role: worker
    storage:
      files:
        - path: /etc/chrony.conf
          mode: 0644
          overwrite: true
          contents:
            inline: |
              # The Machine Config Operator manages this file.
              server openshift-master-0.<cluster-name>.<domain> iburst 1
              server openshift-master-1.<cluster-name>.<domain> iburst
              server openshift-master-2.<cluster-name>.<domain> iburst
    
              stratumweight 0
              driftfile /var/lib/chrony/drift
              rtcsync
              makestep 10 3
              bindcmdaddress 127.0.0.1
              bindcmdaddress ::1
              keyfile /etc/chrony.keys
              commandkey 1
              generatecommandkey
              noclientlog
              logchange 0.5
              logdir /var/log/chrony

    1
    您必须将 <cluster-name> 替换为集群的名称,并将 <domain> 替换为完全限定域名。
  4. 使用 Butane 生成 MachineConfig 对象文件 99-worker-chrony-conf-override.yaml,包含要传送到 worker 节点的配置:

    $ butane 99-worker-chrony-conf-override.bu -o 99-worker-chrony-conf-override.yaml
  5. 99-master-chrony-conf-override.yaml 策略 应用到 control plane 节点。

    $ oc apply -f 99-master-chrony-conf-override.yaml

    输出示例

    machineconfig.machineconfiguration.openshift.io/99-master-chrony-conf-override created

  6. 99-worker-chrony-conf-override.yaml 策略应用到 worker 节点。

    $ oc apply -f 99-worker-chrony-conf-override.yaml

    输出示例

    machineconfig.machineconfiguration.openshift.io/99-worker-chrony-conf-override created

  7. 检查应用的 NTP 设置的状态。

    $ oc describe machineconfigpool

8.4.2. 安装后启用置备网络

裸机集群的安装程序和安装程序置备安装提供了在没有 provisioning 网络的情况下部署集群的功能。当每个节点的基板管理控制器可以通过 baremetal 网络路由时,此功能适用于概念验证集群或专门使用 Redfish 虚拟介质部署。

在 OpenShift Container Platform 4.8 及更新的版本中,您可以使用 Cluster Baremetal Operator(CBO)在安装后启用 provisioning 网络。

先决条件

  • 必须存在一个专用的物理网络连接到所有 worker 和 control plane 节点。
  • 您必须隔离原生且未标记的物理网络。
  • provisioningNetwork 配置设置为 Managed 时,网络将不能有 DHCP 服务器。
  • 您可以省略 OpenShift Container Platform 4.9 中的 provisioningInterface 设置,以使用 bootMACAddress 配置设置。

流程

  1. 设置 provisioningInterface 设置时,首先确定集群节点的调配接口名称。例如: eth0eno1
  2. 在集群节点的 provisioning 网络接口上启用 Preboot eXecution Environment(PXE)。
  3. 检索 provisioning 网络的当前状态,并将其保存到 provisioning 自定义资源 (CR) 文件中:

    $ oc get provisioning -o yaml > enable-provisioning-nw.yaml
  4. 修改 provisioning CR 文件:

    $ vim ~/enable-provisioning-nw.yaml

    向下滚动到 provisioningNetwork 配置设置,并将它从 Disabled 更改为 Managed。然后。在 provisioningNetwork 设置后添加 provisioningOSDownloadURLprovisioningIPprovisioningNetworkCIDRprovisioningDHCPRangeprovisioningInterfacewatchAllNameSpaces 配置设置。为每个设置提供适当的值。

    apiVersion: v1
    items:
    - apiVersion: metal3.io/v1alpha1
      kind: Provisioning
      metadata:
        name: provisioning-configuration
      spec:
        provisioningNetwork: 1
        provisioningOSDownloadURL: 2
        provisioningIP: 3
        provisioningNetworkCIDR: 4
        provisioningDHCPRange: 5
        provisioningInterface: 6
        watchAllNameSpaces: 7
    1
    provisioningNetworkManagedUnmanagedDisabled 之一。当设置为 Managed 时,Metal3 管理置备网络,CBO 使用配置的 DHCP 服务器部署 Metal3 pod。当设置为 Unmanaged 时,系统管理员手动配置 DHCP 服务器。
    2
    provisioningOSDownloadURL 是一个有效的 HTTPS URL,具有有效的 sha256 checksum,它使 Metal3 容器集能够下载以 .qcow2.gz.qcow2.xz 结尾的 qcow2 操作系统镜像。无论 provisioning 网络是 ManagedUnmanagedDisabled,这个字段都是必需的。例如:http://192.168.0.1/images/rhcos-<version>.x86_64.qcow2.gz?sha256=<sha>
    3
    provisioningIP 是 DHCP 服务器和 ironic 用于置备网络的静态 IP 地址。此静态 IP 地址必须在 provisioning 子网中,且在 DHCP 范围之外。如果您配置此设置,则必须具有一个有效的 IP 地址,即使 provisioning 网络是 Disabled 的。静态 IP 地址绑定到 metal3 pod。如果 metal3 pod 失败并移到另一服务器,静态 IP 地址也会移到新服务器。
    4
    无类别域间路由(CIDR)地址。如果您配置此设置,则必须具有一个有效的 CIDR 地址,即使 provisioning 网络是 Disabled 的。例如: 192.168.0.1/24
    5
    DHCP 范围。此设置仅适用于 Managed provisioning 网络。如果 provisioning 网络为 Disabled,则省略此设置。例如:192.168.0.64, 192.168.0.253
    6
    集群节点上 provisioning 接口的 NIC 名称。provisioningInterface 设置仅适用于 ManagedUnmanaged provisioning 网络。如果 provisioning 网络为 Disabled,则省略 provisioningInterface 配置设置。省略 provisioningInterface 配置设置,以使用 bootMACAddress 配置设置。
    7
    如果您希望 metal3 监视默认 openshift-machine-api 命名空间以外的其他命名空间,则将此设置为 true。默认值为 false
  5. 保存对 provisioning CR 文件的更改。
  6. 将 provisioning CR 文件应用到集群:

    $ oc apply -f enable-provisioning-nw.yaml

8.4.3. 配置外部负载均衡器

您可以将 OpenShift Container Platform 集群配置为使用外部负载均衡器来代替默认负载均衡器。

先决条件

  • 在您的负载均衡器中,系统中的所有用户需要使用端口 6443、443 和 80 的 TCP。
  • 在每个 control plane 节点间负载均衡 API 端口 6443。
  • 在所有计算节点之间负载平衡应用程序端口 443 和 80。
  • 在负载均衡器中,用于为节点提供 ignition 启动配置的端口 22623 不会在集群外公开。
  • 您的负载均衡器必须能够访问集群中的每台机器。允许此访问的方法包括:

    • 将负载均衡器附加到集群的机器子网。
    • 将浮动 IP 地址附加到使用负载均衡器的机器。
重要

外部负载平衡服务和 control plane 节点必须在同一 L2 网络上运行,在使用 VLAN 在负载均衡服务和控制平面节点之间路由流量时,必须在相同的 VLAN 上运行。

流程

  1. 在端口 6443、443 和 80 中启用从负载均衡器访问集群的功能。

    例如,请注意此 HAProxy 配置:

    HAProxy 配置示例

    ...
    listen my-cluster-api-6443
        bind 0.0.0.0:6443
        mode tcp
        balance roundrobin
        server my-cluster-master-2 192.0.2.2:6443 check
        server my-cluster-master-0 192.0.2.3:6443 check
        server my-cluster-master-1 192.0.2.1:6443 check
    listen my-cluster-apps-443
            bind 0.0.0.0:443
            mode tcp
            balance roundrobin
            server my-cluster-worker-0 192.0.2.6:443 check
            server my-cluster-worker-1 192.0.2.5:443 check
            server my-cluster-worker-2 192.0.2.4:443 check
    listen my-cluster-apps-80
            bind 0.0.0.0:80
            mode tcp
            balance roundrobin
            server my-cluster-worker-0 192.0.2.7:80 check
            server my-cluster-worker-1 192.0.2.9:80 check
            server my-cluster-worker-2 192.0.2.8:80 check

  2. 在集群 API 的 DNS 服务器中添加记录,并在负载均衡器上应用记录。例如:

    <load_balancer_ip_address> api.<cluster_name>.<base_domain>
    <load_balancer_ip_address> apps.<cluster_name>.<base_domain>
  3. 在命令行中使用 curl 验证外部负载均衡器和 DNS 配置是否正常运行。

    1. 验证集群 API 是否可以访问:

      $ curl https://<loadbalancer_ip_address>:6443/version --insecure

      如果配置正确,您会收到 JSON 对象的响应:

      {
        "major": "1",
        "minor": "11+",
        "gitVersion": "v1.11.0+ad103ed",
        "gitCommit": "ad103ed",
        "gitTreeState": "clean",
        "buildDate": "2019-01-09T06:44:10Z",
        "goVersion": "go1.10.3",
        "compiler": "gc",
        "platform": "linux/amd64"
      }
    2. 验证集群应用程序是否可以访问:

      注意

      您还可以在 Web 浏览器中打开 OpenShift Container Platform 控制台来验证应用程序的可访问性。

      $ curl http://console-openshift-console.apps.<cluster_name>.<base_domain> -I -L --insecure

      如果配置正确,您会收到 HTTP 响应:

      HTTP/1.1 302 Found
      content-length: 0
      location: https://console-openshift-console.apps.<cluster-name>.<base domain>/
      cache-control: no-cacheHTTP/1.1 200 OK
      referrer-policy: strict-origin-when-cross-origin
      set-cookie: csrf-token=39HoZgztDnzjJkq/JuLJMeoKNXlfiVv2YgZc09c3TBOBU4NI6kDXaJH1LdicNhN1UsQWzon4Dor9GWGfopaTEQ==; Path=/; Secure
      x-content-type-options: nosniff
      x-dns-prefetch-control: off
      x-frame-options: DENY
      x-xss-protection: 1; mode=block
      date: Tue, 17 Nov 2020 08:42:10 GMT
      content-type: text/html; charset=utf-8
      set-cookie: 1e2670d92730b515ce3a1bb65da45062=9b714eb87e93cf34853e87a92d6894be; path=/; HttpOnly; Secure; SameSite=None
      cache-control: private
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.