3.2. 使用基于代理的安装程序安装 OpenShift Container Platform


以下流程在断开连接的环境中部署单节点 OpenShift Container Platform。您可以使用这些步骤作为基础,并根据您的要求进行修改。

3.2.1. 下载基于代理的安装程序

使用这个流程下载安装所需的基于代理的安装程序和 CLI。

流程

  1. 使用您的登录凭证登录到 OpenShift Container Platform web 控制台。
  2. 进入到 Datacenter
  3. 在本地点 Run Agent-based Installer
  4. OpenShift Installer命令行界面选择操作系统和架构。
  5. Download Installer 下载并提取安装程序。
  6. 通过点 Download pull secretCopy pull secret 下载或复制 pull secret。
  7. Download command-line tools,将 openshift-install 二进制文件放在 PATH 中的目录中。

3.2.2. 创建首选配置输入

使用这个流程创建用于创建代理镜像的首选配置输入。

流程

  1. 运行以下命令来安装 nmstate 依赖项:

    $ sudo dnf install /usr/bin/nmstatectl -y
    Copy to Clipboard Toggle word wrap
  2. openshift-install 二进制文件放到 PATH 中的目录中。
  3. 运行以下命令,创建一个目录来存储安装配置:

    $ mkdir ~/<directory_name>
    Copy to Clipboard Toggle word wrap
    注意

    这是基于代理的安装的首选方法。使用 GitOps ZTP 清单是可选的。

  4. 运行以下命令来创建 install-config.yaml 文件:

    $ cat << EOF > ./<directory_name>/install-config.yaml
    apiVersion: v1
    baseDomain: test.example.com
    compute:
    - architecture: amd64 
    1
    
      hyperthreading: Enabled
      name: worker
      replicas: 0
    controlPlane:
      architecture: amd64
      hyperthreading: Enabled
      name: master
      replicas: 1
    metadata:
      name: sno-cluster 
    2
    
    networking:
      clusterNetwork:
      - cidr: 10.128.0.0/14
        hostPrefix: 23
      machineNetwork:
      - cidr: 192.168.0.0/16
      networkType: OVNKubernetes 
    3
    
      serviceNetwork:
      - 172.30.0.0/16
    platform:
      none: {}
    pullSecret: '<pull_secret>' 
    4
    
    sshKey: '<ssh_pub_key>' 
    5
    
    EOF
    Copy to Clipboard Toggle word wrap
    1
    指定系统架构,有效值为 amd64arm64
    2
    必需。指定集群名称。
    3
    指定要安装的集群网络插件。支持的值有 OVNKubernetesOpenShiftSDN。默认值为 OVNKubernetes
    4
    指定 pull secret。
    5
    指定 SSH 公钥。
    注意

    如果将平台设置为 vSpherebaremetal,您可以使用三种方式为集群节点配置 IP 地址端点:

    • IPv4
    • IPv6
    • IPv4 和 IPv6 并行 (dual-stack)

    IPv6 仅在裸机平台上被支持。

    双栈网络示例

    networking:
      clusterNetwork:
        - cidr: 172.21.0.0/16
          hostPrefix: 23
        - cidr: fd02::/48
          hostPrefix: 64
      machineNetwork:
        - cidr: 192.168.11.0/16
        - cidr: 2001:DB8::/32
      serviceNetwork:
        - 172.22.0.0/16
        - fd03::/112
      networkType: OVNKubernetes
    platform:
      baremetal:
        apiVIPs:
        - 192.168.11.3
        - 2001:DB8::4
        ingressVIPs:
        - 192.168.11.4
        - 2001:DB8::5
    Copy to Clipboard Toggle word wrap

    注意

    使用断开连接的镜像 registry 时,您必须将之前为镜像 registry 创建的证书文件添加到 install-config.yaml 文件的 additionalTrustBundle 字段中。

  5. 运行以下命令来创建 agent-config.yaml 文件:

    $ cat > agent-config.yaml << EOF
    apiVersion: v1beta1
    kind: AgentConfig
    metadata:
      name: sno-cluster
    rendezvousIP: 192.168.111.80 
    1
    
    hosts: 
    2
    
      - hostname: master-0 
    3
    
        interfaces:
          - name: eno1
            macAddress: 00:ef:44:21:e6:a5
        rootDeviceHints: 
    4
    
          deviceName: /dev/sdb
        networkConfig: 
    5
    
          interfaces:
            - name: eno1
              type: ethernet
              state: up
              mac-address: 00:ef:44:21:e6:a5
              ipv4:
                enabled: true
                address:
                  - ip: 192.168.111.80
                    prefix-length: 23
                dhcp: false
          dns-resolver:
            config:
              server:
                - 192.168.111.1
          routes:
            config:
              - destination: 0.0.0.0/0
                next-hop-address: 192.168.111.2
                next-hop-interface: eno1
                table-id: 254
    EOF
    Copy to Clipboard Toggle word wrap
    1
    此 IP 地址用于确定哪些节点执行 bootstrap 过程,以及运行 assisted-service 组件。当您没有在 networkConfig 参数中指定至少一个主机的 IP 地址时,您必须提供 rendezvous IP 地址。如果没有提供此地址,则会从提供的主机的 networkConfig 中选择一个 IP 地址。
    2
    可选:主机配置。定义的主机数量不能超过 install-config.yaml 文件中定义的主机总数,这是 compute.replicascontrolPlane.replicas 参数的值的总和。
    3
    可选:覆盖从动态主机配置协议(DHCP)或反向 DNS 查找中获取的主机名。每个主机必须具有由这些方法提供的唯一主机名。
    4
    启用将 Red Hat Enterprise Linux CoreOS (RHCOS)镜像置备到特定设备。安装程序会按照发现设备的顺序检查设备,并将发现的值与 hint 值进行比较。它使用第一个与 hint 值匹配的发现设备。
    5
    可选:以 NMState 格式配置主机的网络接口。

3.2.3. 创建其他清单文件

作为可选任务,您可以创建额外的清单,以便在 install-config.yamlagent-config.yaml 文件中可用的配置外进一步配置集群。

3.2.3.1. 创建包含额外清单的目录

如果创建额外的清单,以在 install-config.yamlagent-config.yaml 文件外配置基于 Agent 的安装,则必须在安装目录中创建 openshift 子目录。所有附加机器配置都必须位于此子目录中。

注意

您可以添加的附加清单的最常见类型是 MachineConfig 对象。有关您可以在基于代理的安装过程中添加的 MachineConfig 对象示例,请参阅"添加资源"部分中的"使用 MachineConfig 对象来配置节点"。

流程

  • 在安装主机上,运行以下命令在安装目录中创建一个 openshift 子目录:

    $ mkdir <installation_directory>/openshift
    Copy to Clipboard Toggle word wrap

3.2.3.2. 磁盘分区

通常,您应该使用在 RHCOS 安装过程中创建的默认磁盘分区。然而,在有些情况下您可能需要为预期增长的目录创建独立分区。

OpenShift Container Platform 支持添加单个分区将存储附加到 /var 目录或 /var 的子目录中。例如:

  • /var/lib/containers :保存随着系统中添加更多镜像和容器而增长的容器相关内容。
  • /var/lib/etcd :保存您可能希望独立保留的数据,比如 etcd 存储的性能优化。
  • /var :保存您可能希望独立保留的数据,以满足审计等目的。

    重要

    对于大于 100GB 的磁盘大小,特别是磁盘大小大于 1TB,请创建一个独立的 /var 分区。

通过单独存储 /var 目录的内容,可以更轻松地根据需要为区域扩展存储,并在以后重新安装 OpenShift Container Platform,并保持该数据的完整性。使用这个方法,您不必再次拉取所有容器,在更新系统时也不必复制大量日志文件。

将独立分区用于 /var 目录或 /var 的子目录也会防止分区目录中的数据增加填充根文件系统。

以下流程通过添加机器配置清单来设置独立的 /var 分区,该清单会在安装准备阶段封装到节点类型的 Ignition 配置文件中。

先决条件

  • 您已在安装目录中创建了 openshift 子目录。

流程

  1. 创建用于配置额外分区的 Butane 配置。例如,将文件命名为 $HOME/clusterconfig/98-var-partition.bu,将磁盘设备名称改为 worker 系统上存储设备的名称,并根据情况设置存储大小。这个示例将 /var 目录放在一个单独的分区中:

    variant: openshift
    version: 4.14.0
    metadata:
      labels:
        machineconfiguration.openshift.io/role: worker
      name: 98-var-partition
    storage:
      disks:
      - device: /dev/disk/by-id/<device_name> 
    1
    
        partitions:
        - label: var
          start_mib: <partition_start_offset> 
    2
    
          size_mib: <partition_size> 
    3
    
          number: 5
      filesystems:
        - device: /dev/disk/by-partlabel/var
          path: /var
          format: xfs
          mount_options: [defaults, prjquota] 
    4
    
          with_mount_unit: true
    Copy to Clipboard Toggle word wrap
    1
    要分区的磁盘的存储设备名称。
    2
    当在引导磁盘中添加数据分区时,推荐最少使用偏移值 25000 兆字节。root 文件系统会自动调整大小以填充所有可用空间(最多到指定的偏移值)。如果没有指定偏移值,或者指定的值小于推荐的最小值,则生成的 root 文件系统会太小,而在以后进行的 RHCOS 重新安装可能会覆盖数据分区的开始部分。
    3
    以兆字节为单位的数据分区大小。
    4
    对于用于容器存储的文件系统,必须启用 prjquota 挂载选项。
    注意

    在创建单独的 /var 分区时,如果不同的实例类型没有相同的设备名称,则无法将不同的实例类型用于计算节点。

  2. 从 Butane 配置创建一个清单,并将它保存到 clusterconfig/openshift 目录中。例如,运行以下命令:

    $ butane $HOME/clusterconfig/98-var-partition.bu -o $HOME/clusterconfig/openshift/98-var-partition.yaml
    Copy to Clipboard Toggle word wrap

3.2.4. 使用 ZTP 清单

作为可选任务,您可以使用 GitOps Zero Touch Provisioning (ZTP) 清单在通过 install-config.yamlagent-config.yaml 文件提供的选项之外配置安装。

注意

GitOps ZTP 清单可以使用或不提前配置 install-config.yamlagent-config.yaml 文件生成。如果您选择配置 install-config.yamlagent-config.yaml 文件,则配置会在生成时导入到 ZTP 集群清单中。

先决条件

  • 您已将 openshift-install 二进制文件放在 PATH 中的目录中。
  • 可选:您已创建并配置了 install-config.yamlagent-config.yaml 文件。

流程

  1. 运行以下命令来生成 ZTP 集群清单:

    $ openshift-install agent create cluster-manifests --dir <installation_directory>
    Copy to Clipboard Toggle word wrap
    重要

    如果您已创建了 install-config.yamlagent-config.yaml 文件,则这些文件将被删除,并替换为通过这个命令生成的集群清单。

    在运行 openshift-install agent create cluster-manifests 命令时,对 install-config.yamlagent-config.yaml 文件所做的任何配置都会导入到 ZTP 集群清单中。

  2. 运行以下命令,进入 cluster-manifests 目录:

    $ cd <installation_directory>/cluster-manifests
    Copy to Clipboard Toggle word wrap
  3. cluster-manifests 目录中配置清单文件。如需示例文件,请参阅 "Sample GitOps ZTP 自定义资源" 部分。
  4. 断开连接的集群: 如果您在生成 ZTP 清单前没有在 install-config.yaml 文件中定义镜像配置,请执行以下步骤:

    1. 运行以下命令来进入 mirror 目录:

      $ cd ../mirror
      Copy to Clipboard Toggle word wrap
    2. mirror 目录中配置清单文件。

3.2.5. 加密磁盘

作为一个可选任务,在使用基于代理的安装程序安装 OpenShift Container Platform 时,您可以使用此流程加密磁盘或分区。

先决条件

  • 您已创建并配置了 install-config.yamlagent-config.yaml 文件,除非您使用 ZTP 清单。
  • 您已将 openshift-install 二进制文件放在 PATH 中的目录中。

流程

  1. 运行以下命令来生成 ZTP 集群清单:

    $ openshift-install agent create cluster-manifests --dir <installation_directory>
    Copy to Clipboard Toggle word wrap
    重要

    如果您已创建了 install-config.yamlagent-config.yaml 文件,则这些文件将被删除,并替换为通过这个命令生成的集群清单。

    在运行 openshift-install agent create cluster-manifests 命令时,对 install-config.yamlagent-config.yaml 文件所做的任何配置都会导入到 ZTP 集群清单中。

    注意

    如果您已经生成了 ZTP 清单,请跳过这一步。

  2. 运行以下命令,进入 cluster-manifests 目录:

    $ cd <installation_directory>/cluster-manifests
    Copy to Clipboard Toggle word wrap
  3. agent-cluster-install.yaml 文件中添加以下部分:

    diskEncryption:
        enableOn: all 
    1
    
        mode: tang 
    2
    
        tangServers: "server1": "http://tang-server-1.example.com:7500" 
    3
    Copy to Clipboard Toggle word wrap
    1
    指定要启用磁盘加密的节点。有效值为 none, all, master, 和 worker
    2
    指定要使用的磁盘加密模式。有效值为 tpmv2tang
    3
    可选:如果您使用 Tang,请指定 Tang 服务器。

3.2.6. 创建并引导代理镜像

使用这个流程在机器上引导代理镜像。

流程

  1. 运行以下命令来创建代理镜像:

    $ openshift-install --dir <install_directory> agent create image
    Copy to Clipboard Toggle word wrap
    注意

    Red Hat Enterprise Linux CoreOS (RHCOS) 支持主磁盘上的多路径,允许对硬件故障进行更强大的弹性,以实现更高的主机可用性。在代理 ISO 镜像中默认启用多路径,默认 /etc/multipath.conf 配置。

  2. 在裸机机器上引导 agent.x86_64.isoagent.aarch64.iso 镜像。

引导代理镜像和网络服务可用于主机后,代理控制台应用会执行拉取检查,以验证当前主机是否可以检索发行镜像。

如果主拉取检查通过,您可以退出应用程序以继续安装。如果拉取检查失败,应用程序会执行额外的检查,如 TUI 的额外检查部分中所示,以帮助您对问题进行故障排除。只要主拉取检查成功,则对任何其他检查失败不一定至关重要。

如果有可能导致安装失败的主机网络配置问题,您可以使用控制台应用程序调整网络配置。

重要

如果代理控制台应用程序检测到主机网络配置问题,则安装工作流将停止,直到用户手动停止控制台应用程序并信号继续操作。

流程

  1. 等待代理控制台应用程序检查是否可以从 registry 中拉取配置的发行镜像。
  2. 如果代理控制台应用程序指出安装程序连接检查已通过,请等待提示符超时。

    注意

    您仍然可以选择查看或更改网络配置设置,即使连接检查已通过了。

    但是,如果您选择与代理控制台应用程序交互,而不是让其超时,您必须手动退出 TUI 才能继续安装。

  3. 如果代理控制台应用程序检查失败(由 发行镜像 URL pull 检查旁的红色图标表示),请按照以下步骤重新配置主机的网络设置:

    1. 阅读 TUI 的检查错误部分。本节显示特定于失败检查的错误消息。

    2. 选择 Configure network 以启动 NetworkManager TUI。
    3. 选择 Edit a connection 并选择您要重新配置的连接。
    4. 编辑配置并选择 OK 保存您的更改。
    5. 选择 Back 返回到 NetworkManager TUI 的主屏幕。
    6. 选择 Activate a Connection
    7. 选择重新配置的网络来取消激活它。
    8. 再次选择重新配置的网络来重新激活它。
    9. 选择 Back,然后选择 Quit 以返回到代理控制台应用程序。
    10. 至少等待五秒,以便持续网络检查使用新的网络配置重新启动。
    11. 如果 Release image URL pull 检查成功,并显示 URL 旁边的绿色图标,请选择 Quit 退出代理控制台应用程序并继续安装。

3.2.8. 跟踪并验证安装进度

使用以下步骤跟踪安装进度并验证安装是否成功。

先决条件

  • 您已为 Kubernetes API 服务器配置了 DNS 记录。

流程

  1. 可选: 要了解 bootstrap 主机(渲染主机)何时重启,请运行以下命令:

    $ ./openshift-install --dir <install_directory> agent wait-for bootstrap-complete \
    1
    
        --log-level=info 
    2
    Copy to Clipboard Toggle word wrap
    1
    对于 <install_directory>,请指定到生成代理 ISO 的目录的路径。
    2
    要查看不同的安装详情,请指定 warndebugerror,而不是 info

    输出示例

    ...................................................................
    ...................................................................
    INFO Bootstrap configMap status is complete
    INFO cluster bootstrap is complete
    Copy to Clipboard Toggle word wrap

    当 Kubernetes API 服务器提示已在 control plane 机器上引导它时,该命令会成功。

  2. 要跟踪进度并验证安装是否成功,请运行以下命令:

    $ openshift-install --dir <install_directory> agent wait-for install-complete 
    1
    Copy to Clipboard Toggle word wrap
    1
    对于 <install_directory> 目录,请指定到生成代理 ISO 的目录的路径。

    输出示例

    ...................................................................
    ...................................................................
    INFO Cluster is installed
    INFO Install complete!
    INFO To access the cluster as the system:admin user when using 'oc', run
    INFO     export KUBECONFIG=/home/core/installer/auth/kubeconfig
    INFO Access the OpenShift web-console here: https://console-openshift-console.apps.sno-cluster.test.example.com
    Copy to Clipboard Toggle word wrap

注意

如果使用可选的 GitOps ZTP 清单方法,您可以以三种方式通过 AgentClusterInstall.yaml 文件为集群节点配置 IP 地址端点:

  • IPv4
  • IPv6
  • IPv4 和 IPv6 并行 (dual-stack)

IPv6 仅在裸机平台上被支持。

双栈网络示例

apiVIP: 192.168.11.3
ingressVIP: 192.168.11.4
clusterDeploymentRef:
  name: mycluster
imageSetRef:
  name: openshift-4.14
networking:
  clusterNetwork:
  - cidr: 172.21.0.0/16
    hostPrefix: 23
  - cidr: fd02::/48
    hostPrefix: 64
  machineNetwork:
  - cidr: 192.168.11.0/16
  - cidr: 2001:DB8::/32
  serviceNetwork:
  - 172.22.0.0/16
  - fd03::/112
  networkType: OVNKubernetes
Copy to Clipboard Toggle word wrap

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat