保持 Red Hat OpenStack Platform 更新


Red Hat OpenStack Platform 16.0

执行 Red Hat OpenStack Platform 的次要更新

OpenStack Documentation Team

摘要

本文档提供了更新 Red Hat OpenStack Platform 16.0 (Train)环境的步骤。本文档假定您将更新在 Red Hat Enterprise Linux 8 上安装的容器化 OpenStack Platform 部署。

第 1 章 简介

本文档提供了工作流,可帮助您通过最新的软件包和容器保持您的 Red Hat OpenStack Platform 16.0 环境更新。

本指南通过以下版本提供升级路径:

旧的 Overcloud 版本新的 Overcloud 版本

Red Hat OpenStack Platform 16.0

Red Hat OpenStack Platform 16.0.z

1.1. 高级工作流

下表提供了升级过程所需的步骤:

StepDescription

更新 undercloud

将 undercloud 更新至最新的 OpenStack Platform 16.0.z 版本。

更新 overcloud

将 overcloud 更新至最新的 OpenStack Platform 16.0.z 版本。

更新 Ceph Storage 节点

升级所有 Ceph Storage 服务。

完成升级

运行 convergence 命令来刷新 overcloud 堆栈。

第 2 章 准备次要更新

在开始将 Red Hat OpenStack Platform 16.0 更新至最新的次版本前,您必须遵循 undercloud 的一些准备步骤。

2.1. 将环境锁定到 Red Hat Enterprise Linux 版本

Red Hat OpenStack Platform 16.0 在 Red Hat Enterprise Linux 8.1 上被支持。在进行更新前,将 undercloud 和 overcloud 存储库锁定到 Red Hat Enterprise Linux 8.1 版本,以避免将操作系统升级到较新的次版本。

流程

  1. stack 用户的身份登录 undercloud。
  2. Source stackrc 文件:

    $ source ~/stackrc
  3. 创建 overcloud 的静态清单文件:

    $ tripleo-ansible-inventory --ansible_ssh_user heat-admin --static-yaml-inventory ~/inventory.yaml

    如果使用与 overcloud 的默认 overcloud 名称不同的 overcloud 名称,请使用 --plan 选项来设置 overcloud 的名称。

  4. 创建一个 playbook,其中包含一个任务,将操作系统版本锁定到所有节点上的 Red Hat Enterprise Linux 8.1:

    $ cat > ~/set_release.yaml <<'EOF'
    - hosts: overcloud,undercloud
      gather_facts: false
      tasks:
        - name: set release to 8.1
          command: subscription-manager release --set=8.1
          become: true
    EOF
  5. 运行 set_release.yaml playbook:

    $ ansible-playbook -i ~/inventory.yaml -f 25 ~/set_release.yaml
注意

要手动将节点锁定到版本,请登录到节点并运行 subscription-manager release 命令:

$ sudo subscription-manager release --set=8.1

2.2. 更改为扩展更新支持(EUS)软件仓库

您的 Red Hat OpenStack Platform 订阅包括了 Red Hat Enterprise Linux 8.1 延长更新支持(EUS)的软件仓库。EUS 软件仓库包括 Red Hat Enterprise Linux 8.1 的最新安全补丁和程序错误修复。在执行次版本更新前,切换到以下软件仓库。

标准软件仓库EUS Resporitory

rhel-8-for-x86_64-baseos-rpms

rhel-8-for-x86_64-baseos-eus-rpms

rhel-8-for-x86_64-appstream-rpms

rhel-8-for-x86_64-appstream-eus-rpms

rhel-8-for-x86_64-highavailability-rpms

rhel-8-for-x86_64-highavailability-eus-rpms

流程

  1. stack 用户的身份登录 undercloud。
  2. Source stackrc 文件:

    $ source ~/stackrc
  3. 编辑 overcloud 订阅管理环境文件,这是包含 RhsmVars 参数的文件。此文件的默认名称是 rhsm.yml
  4. 检查订阅管理配置中的 rhsm_repos 参数。如果此参数没有包括 EUS 软件仓库,请将相关的软件仓库改为 EUS 版本:

    parameter_defaults:
      RhsmVars:
        rhsm_repos:
          - rhel-8-for-x86_64-baseos-eus-rpms
          - rhel-8-for-x86_64-appstream-eus-rpms
          - rhel-8-for-x86_64-highavailability-eus-rpms
          - ansible-2.9-for-rhel-8-x86_64-rpms
          - advanced-virt-for-rhel-8-x86_64-rpms
          - openstack-beta-for-rhel-8-x86_64-rpms
          - rhceph-4-osd-for-rhel-8-x86_64-rpms
          - rhceph-4-mon-for-rhel-8-x86_64-rpms
          - rhceph-4-tools-for-rhel-8-x86_64-rpms
          - fast-datapath-for-rhel-8-x86_64-rpms
  5. 保存 overcloud 订阅管理环境文件。
  6. 创建 overcloud 的静态清单文件:

    $ tripleo-ansible-inventory --ansible_ssh_user heat-admin --static-yaml-inventory ~/inventory.yaml

    如果使用与 overcloud 的默认 overcloud 名称不同的 overcloud 名称,请使用 --plan 选项来设置 overcloud 的名称。

  7. 创建一个 playbook,其中包含一个任务,将软件仓库设置为所有节点上的 Red Hat Enterprise Linux 8.1 EUS:

    $ cat > ~/change_eus.yaml <<'EOF'
    - hosts: overcloud,undercloud
      gather_facts: false
      tasks:
        - name: change to eus repos
          command: subscription-manager repos --disable=rhel-8-for-x86_64-baseos-rpms --disable=rhel-8-for-x86_64-appstream-rpms --disable=rhel-8-for-x86_64-highavailability-rpms --enable=rhel-8-for-x86_64-baseos-eus-rpms --enable=rhel-8-for-x86_64-appstream-eus-rpms --enable=rhel-8-for-x86_64-highavailability-eus-rpms
          become: true
    EOF
  8. 运行 change_eus.yaml playbook:

    $ ansible-playbook -i ~/inventory.yaml -f 25 ~/change_eus.yaml

第 3 章 更新 Undercloud

此过程将 undercloud 及其 overcloud 镜像更新至最新的 Red Hat OpenStack Platform 16.0 版本。

3.1. 执行容器化 undercloud 的次要更新

director 提供用于更新 undercloud 节点上的软件包的命令。这可让您在 OpenStack Platform 环境的当前版本中执行次要更新。

流程

  1. stack 用户身份登录 director。
  2. 运行 dnf 以升级 director 的主软件包:

    $ sudo dnf update -y python3-tripleoclient* openstack-tripleo-common openstack-tripleo-heat-templates tripleo-ansible
  3. director 使用 openstack undercloud upgrade 命令更新 undercloud 环境。运行命令:

    $ openstack undercloud upgrade
  4. 等待 undercloud 升级过程完成。
  5. 重启 undercloud 以更新操作系统的内核和其他系统软件包:

    $ sudo reboot
  6. 稍等片刻,直到节点启动。

3.2. 更新 overcloud 镜像

您需要将您当前的 overcloud 镜像替换为新版本。新镜像确保 director 可以使用最新版本的 OpenStack Platform 软件内省和调配节点。

前提条件

  • 您已将 undercloud 更新至最新版本。

流程

  1. Source stackrc 文件:

    $ source ~/stackrc
  2. stack 用户的主目录(/home/stack/images)的 images 中删除任何存在的镜像。

    $ rm -rf ~/images/*
  3. 解压存档:

    $ cd ~/images
    $ for i in /usr/share/rhosp-director-images/overcloud-full-latest-16.0.tar /usr/share/rhosp-director-images/ironic-python-agent-latest-16.0.tar; do tar -xvf $i; done
    $ cd ~
  4. 将最新的镜像导入 director:

    $ openstack overcloud image upload --update-existing --image-path /home/stack/images/
  5. 将您的节点配置为使用新镜像:

    $ openstack overcloud node configure $(openstack baremetal node list -c UUID -f value)
  6. 验证新镜像是否存在:

    $ openstack image list
    $ ls -l /var/lib/ironic/httpboot
重要

在部署 overcloud 节点时,请确保 overcloud 镜像版本对应于对应的 heat 模板版本。例如,仅将 OpenStack Platform 16 镜像与 OpenStack Platform 16 heat 模板搭配使用。

重要

新的 overcloud-full 镜像取代了旧的 overcloud-full 镜像。如果您更改了旧镜像,您必须在新镜像中重复更改,特别是将来要部署新节点时。

3.3. undercloud Post-Upgrade 备注

  • 如果在 stack 用户主目录中使用一组本地核心模板,请确保使用 高级 Overcloud 自定义指南中的使用 自定义核心 Heat 模板中的推荐工作流更新模板。在升级 overcloud 前,您必须更新本地副本。

3.4. 后续步骤

undercloud 升级已完成。现在,您可以更新 overcloud。

第 4 章 更新 Overcloud

此过程更新 overcloud。

前提条件

  • 您已将 undercloud 更新至最新版本。

4.1. 运行 overcloud 更新准备

更新需要运行 openstack overcloud update prepare 命令,该命令执行以下任务:

  • 将 overcloud 计划更新为 OpenStack Platform 16.0
  • 为更新准备节点

流程

  1. Source stackrc 文件:

    $ source ~/stackrc
  2. 运行 update preparation 命令:

    $ openstack overcloud update prepare \
        --templates \
        -r <ROLES DATA FILE> \
        -n <NETWORK DATA FILE> \
        -e <ENVIRONMENT FILE> \
        -e <ENVIRONMENT FILE> \
        --stack <STACK_NAME> \
        …​

    包含以下与您的环境相关的选项:

    • 自定义配置环境文件(-e)
    • 如果使用您自己的自定义角色,请包含自定义角色(roles_data)文件(-r)
    • 如果使用自定义网络,请包含您的可组合网络(network_data)文件(-n)
    • 如果 overcloud 堆栈的名称与默认名称 overcloud 不同,请在更新准备命令中包含 --stack 选项,并将 < STACK_NAME& gt; 替换为您的堆栈的名称。
  3. 等待更新准备完成。

4.2. 运行容器镜像准备

在执行更新前,overcloud 需要最新的 OpenStack Platform 16.0 容器镜像。这涉及执行 container_image_prepare 外部更新过程。要执行此过程,请针对带有 container_image_prepare 标签的任务运行 openstack overcloud external-update run 命令。这些任务:

  • 自动准备与您的环境相关的所有容器镜像配置。
  • 将相关的容器镜像拉取到 undercloud,除非您之前禁用了这个选项。

流程

  1. Source stackrc 文件:

    $ source ~/stackrc
  2. 针对带有 container_image_prepare 标签的任务运行 openstack overcloud external-update run 命令:

    $ openstack overcloud external-update run --stack STACK_NAME --tags container_image_prepare

4.3. 更新所有 Controller 节点

此过程将所有 Controller 节点更新至最新的 OpenStack Platform 16.0 版本。这个过程涉及运行 openstack overcloud update run 命令,包括 --limit Controller 选项,以限制为 Controller 节点的操作。

注意

如果您不使用默认的堆栈名称(overcloud),请将堆栈名称设置为 --stack STACK_NAME 选项将 STACK_NAME 替换为堆栈的名称。

流程

  1. Source stackrc 文件:

    $ source ~/stackrc
  2. 运行 update 命令:

    $ openstack overcloud update run --stack STACK_NAME --limit Controller --playbook all
  3. 等待 Controller 节点更新完成。

4.4. 更新所有 Compute 节点

此过程将所有 Compute 节点更新至最新的 OpenStack Platform 16.0 版本。这个过程涉及运行 openstack overcloud update run 命令,包括 --nodes Compute 选项,以仅限对 Compute 节点的操作。

注意

如果您不使用默认的堆栈名称(overcloud),请将堆栈名称设置为 --stack STACK_NAME 选项将 STACK_NAME 替换为堆栈的名称。

流程

  1. Source stackrc 文件:

    $ source ~/stackrc
  2. 运行 update 命令:

    $ openstack overcloud update run --stack STACK_NAME --limit Compute --playbook all
  3. 等待 Compute 节点更新完成。

4.5. 更新所有 HCI Compute 节点

此流程更新超融合基础架构(HCI) Compute 节点。这个过程涉及:

  • 运行 openstack overcloud update run 命令,包括 --nodes ComputeHCI 选项,以限制为 HCI 节点的操作。
  • 运行 openstack overcloud external-update run --tags ceph 命令,对容器化 Red Hat Ceph Storage 4 集群执行更新。
注意

如果您不使用默认的堆栈名称(overcloud),请将堆栈名称设置为 --stack STACK_NAME 选项将 STACK_NAME 替换为堆栈的名称。

流程

  1. Source stackrc 文件:

    $ source ~/stackrc
  2. 运行 update 命令:

    $ openstack overcloud update run --stack _STACK_NAME_ --limit ComputeHCI --playbook all
  3. 等待节点更新完成。
  4. 运行 Ceph Storage update 命令。例如:

    $ openstack overcloud external-update run --stack _STACK_NAME_ --tags ceph
  5. 等待 Compute HCI 节点更新完成。

4.6. 更新所有 Ceph Storage 节点

此过程会更新 Ceph Storage 节点。这个过程涉及:

  • 运行 openstack overcloud update run 命令,包括 --nodes CephStorage 选项,以仅限制对 Ceph Storage 节点的操作。
  • 运行 openstack overcloud external-update run 命令以外部进程运行 ceph-ansible,并更新 Red Hat Ceph Storage 4 容器。
注意

如果您不使用默认的堆栈名称(overcloud),请将堆栈名称设置为 --stack STACK_NAME 选项将 STACK_NAME 替换为堆栈的名称。

流程

  1. Source stackrc 文件:

    $ source ~/stackrc
  2. 更新组节点。

    更新组中的所有节点:

    $ openstack overcloud update run --nodes <GROUP_NAME>

    更新组中的单一节点:

    $ openstack overcloud update run --nodes <GROUP_NAME> [NODE_INDEX]
    注意

    如果选择单独更新节点,请确保更新所有节点。

    组中的第一个节点的索引为零(0)。例如,要更新名为 CephStorage 的组中的第一个节点,该命令为:

    OpenStack overcloud update run --nodes CephStorage[0]

  3. 等待节点更新完成。
  4. 运行 Ceph Storage 容器 update 命令:

    $ openstack overcloud external-update run --stack _STACK_NAME_ --tags ceph
  5. 等待 Ceph Storage 容器更新完成。

4.7. 执行在线数据库更新

有些 overcloud 组件需要其数据库表的在线升级(或迁移)。这包括执行 online_upgrade 外部更新过程。要执行此过程,请针对带有 online_upgrade 标签的任务运行 openstack overcloud external-update run 命令。这会对以下组件执行在线数据库更新:

  • OpenStack Block Storage (cinder)
  • OpenStack Compute (nova)

流程

  1. Source stackrc 文件:

    $ source ~/stackrc
  2. 针对使用 online_upgrade 标签标记的任务运行 openstack overcloud external-update run 命令:

    $ openstack overcloud external-update run --stack STACK_NAME --tags online_upgrade

4.8. 最终更新

更新需要最后一步来更新 overcloud 堆栈。这样可确保堆栈的资源结构与 OpenStack Platform 16.0 的常规部署一致,并允许您在以后执行标准 openstack overcloud 部署功能。

流程

  1. Source stackrc 文件:

    $ source ~/stackrc
  2. 运行 update finalization 命令:

    $ openstack overcloud update converge \
        --templates \
        -r <ROLES DATA FILE> \
        -n <NETWORK DATA FILE> \
        -e <ENVIRONMENT FILE> \
        -e <ENVIRONMENT FILE> \
        --stack <STACK_NAME> \
        …​

    包含以下与您的环境相关的选项:

    使用自己的自定义角色,+HQ 自定义配置环境文件(-e),如果 overcloud 堆栈的名称与默认名称overcloud 不同,请包括您的可组合网络(network_data)文件(-n),如果您的 overcloud 堆栈的名称与默认名称 overcloud 不同, 在 update prepare 命令中包含 --stack 选项,并将 & lt;STACK_NAME > 替换为堆栈的名称。

  3. 等待更新最终完成。

第 5 章 重新引导 overcloud

在 Red Hat OpenStack 次版本更新后,重启您的 overcloud。重启会刷新节点,并包括相关的内核、系统级别和容器组件更新。这些更新可以提供性能和安全优势。

计划停机以执行以下重启过程。

5.1. 重新引导 Controller 和可组合节点

完成以下步骤以基于可组合角色重新引导 Controller 节点和独立节点,不包括 Compute 节点和 Ceph Storage 节点。

流程

  1. 登录您要重新引导的节点。
  2. 可选:如果节点使用 Pacemaker 资源,请停止集群:

    [heat-admin@overcloud-controller-0 ~]$ sudo pcs cluster stop
  3. 重新引导节点:

    [heat-admin@overcloud-controller-0 ~]$ sudo reboot
  4. 稍等片刻,直到节点启动。
  5. 检查服务。例如:

    1. 如果该节点使用 Pacemaker 服务,请检查该节点是否已重新加入集群:

      [heat-admin@overcloud-controller-0 ~]$ sudo pcs status
    2. 如果该节点使用 Systemd 服务,请检查是否所有服务都已启用:

      [heat-admin@overcloud-controller-0 ~]$ sudo systemctl status
    3. 如果该节点使用容器化服务,则检查节点上的所有容器是否已激活:

      [heat-admin@overcloud-controller-0 ~]$ sudo podman ps

5.2. 重新引导 Ceph Storage (OSD) 集群

完成以下步骤以重新引导 Ceph Storage (OSD) 节点集群。

流程

  1. 登录到 Ceph MON 或 Controller 节点,并临时禁用 Ceph 存储集群重新平衡:

    $ sudo podman exec -it ceph-mon-controller-0 ceph osd set noout
    $ sudo podman exec -it ceph-mon-controller-0 ceph osd set norebalance
  2. 选择第一个要重新引导的 Ceph Storage 节点并登录到该节点。
  3. 重新引导节点:

    $ sudo reboot
  4. 稍等片刻,直到节点启动。
  5. 登录到节点并检查集群状态:

    $ sudo podman exec -it ceph-mon-controller-0 ceph status

    确认 pgmap 报告的所有 pgs 的状态是否都正常 (active+clean)。

  6. 注销节点,重新引导下一个节点,并检查其状态。重复此流程,直到您已重新引导所有 Ceph 存储节点。
  7. 完成之后,登录 Ceph MON 或 Controller 节点,然后重新启用集群重新平衡:

    $ sudo podman exec -it ceph-mon-controller-0 ceph osd unset noout
    $ sudo podman exec -it ceph-mon-controller-0 ceph osd unset norebalance
  8. 执行最后的状态检查,确认集群报告 HEALTH_OK

    $ sudo podman exec -it ceph-mon-controller-0 ceph status

5.3. 重新引导 Compute 节点

完成以下步骤以重新引导 Compute 节点。为确保 Red Hat OpenStack Platform 环境中实例的停机时间最少,此步骤还包括有关从您要重新引导的 Compute 节点迁移实例的说明。其中会涉及以下工作流:

  • 决定是否在重新引导节点前将实例迁移到另一个 Compute 节点。
  • 选择并禁用您要重新引导的 Compute 节点,使其不置备新实例。
  • 将实例迁移到另一个 Compute 节点中。
  • 重新引导空的 Compute 节点。
  • 启用空的 Compute 节点。

前提条件

重启 Compute 节点之前,必须决定是否在节点重启过程中将实例迁移到另一个 Compute 节点。

如果出于某种原因,您无法或不想迁移实例,则可设置以下核心模板参数以在 Compute 节点重新引导后控制实例的状态:

NovaResumeGuestsStateOnHostBoot
确定重新引导后是否将实例返回 Compute 节点上的相同状态。设为 False 时,实例将保持关闭,必须手动启动。默认值为:False
NovaResumeGuestsShutdownTimeout
重启前等待实例被关闭的时间(以秒为单位)。建议不要将此值设置为 0。默认值为:300
NovaResumeGuestsShutdownTimeout
重启前等待实例被关闭的时间(以秒为单位)。建议不要将此值设置为 0。默认值为:300

有关 overcloud 参数及其用法的更多信息,请参阅 Overcloud 参数

流程

  1. stack 用户的身份登录 undercloud。
  2. 列出所有的 Compute 节点及其 UUID:

    $ source ~/stackrc
    (undercloud) $ openstack server list --name compute

    识别您要重新引导的 Compute 节点的 UUID。

  3. 从 undercloud 中,选择 Compute 节点。禁用该节点:

    $ source ~/overcloudrc
    (overcloud) $ openstack compute service list
    (overcloud) $ openstack compute service set [hostname] nova-compute --disable
  4. 列出 Compute 节点上的所有实例:

    (overcloud) $ openstack server list --host [hostname] --all-projects
  5. 如果您决定不迁移实例,则跳至此步骤
  6. 如果您决定将实例迁移至另一个 Compute 节点,则使用以下命令之一:

    • 将实例迁移至其他主机:

      (overcloud) $ openstack server migrate [instance-id] --live [target-host]--wait
    • nova-scheduler 自动选择目标主机:

      (overcloud) $ nova live-migration [instance-id]
    • 一次性实时迁移所有实例:

      $ nova host-evacuate-live [hostname]
      注意

      nova 命令可能会引发一些弃用警告,这些警告信息可以被安全忽略。

  7. 稍等片刻,直至迁移完成。
  8. 确认迁移成功完成:

    (overcloud) $ openstack server list --host [hostname] --all-projects
  9. 继续迁移实例,直到所选 Compute 节点中不剩任何实例。
  10. 登录到 Compute 节点并重启节点:

    [heat-admin@overcloud-compute-0 ~]$ sudo reboot
  11. 稍等片刻,直到节点启动。
  12. 重新启用 Compute 节点:

    $ source ~/overcloudrc
    (overcloud) $ openstack compute service set [hostname] nova-compute --enable
  13. 确认是否已启用 Compute 节点:

    (overcloud) $ openstack compute service list

5.4. 重新引导 HCI Compute 节点

以下流程重启计算超融合基础架构(HCI)节点。

流程

  1. 登录到 Ceph MON 或 Controller 节点,并临时禁用 Ceph 存储集群重新平衡:

    $ sudo podman exec -it ceph-mon-controller-0 ceph osd set noout
    $ sudo podman exec -it ceph-mon-controller-0 ceph osd set norebalance
  2. stack 用户的身份登录 undercloud。
  3. 列出所有的 Compute 节点及其 UUID:

    $ source ~/stackrc
    (undercloud) $ openstack server list --name compute

    识别您旨在重新引导的 Compute 节点的 UUID。

  4. 从 undercloud 中,选择一个 Compute 节点并禁用它:

    $ source ~/overcloudrc
    (overcloud) $ openstack compute service list
    (overcloud) $ openstack compute service set [hostname] nova-compute --disable
  5. 列出 Compute 节点上的所有实例:

    (overcloud) $ openstack server list --host [hostname] --all-projects
  6. 使用以下命令之一迁移您的实例:

    1. 将实例迁移到您选择的特定主机:

      (overcloud) $ openstack server migrate [instance-id] --live [target-host]--wait
    2. nova-scheduler 自动选择目标主机:

      (overcloud) $ nova live-migration [instance-id]
    3. 一次性实时迁移所有实例:

      $ nova host-evacuate-live [hostname]
      注意

      nova 命令可能会引发一些弃用警告,这些警告信息可以被安全忽略。

  7. 等待迁移完成。
  8. 确认迁移成功完成:

    (overcloud) $ openstack server list --host [hostname] --all-projects
  9. 继续迁移实例,直到所选 Compute 节点上不剩任何实例。
  10. 登录到 Ceph MON 或 Controller 节点,并检查集群状态:

    $ sudo podman exec $CEPH_MON_CONTAINER ceph -s

    确认 pgmap 报告的所有 pgs 的状态是否都正常 (active+clean)。

  11. 重启 Compute HCI 节点:

    $ sudo reboot
  12. 稍等片刻,直到节点启动。
  13. 再次启用 Compute 节点:

    $ source ~/overcloudrc
    (overcloud) $ openstack compute service set [hostname] nova-compute --enable
  14. 验证 Compute 节点是否已启用:

    (overcloud) $ openstack compute service list
  15. 注销节点,重新引导下一个节点,并检查其状态。重复此流程,直到您已重新引导所有 Ceph 存储节点。
  16. 完成后,登录到 Ceph MON 或 Controller 节点,然后再次启用集群重新平衡:

    $ sudo podman exec $CEPH_MON_CONTAINER ceph osd unset noout
    $ sudo podman exec $CEPH_MON_CONTAINER ceph osd unset norebalance
  17. 执行最后的状态检查,确认集群报告 HEALTH_OK

    $ sudo podman exec $CEPH_MON_CONTAINER ceph status
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.