第 4 章 使用对等 pod 在 IBM Z 和 IBM LinuxONE 上部署机密容器


您可以在带有对等 pod 的 IBM Z® 和 IBM® LinuxONE 上运行的 Red Hat OpenShift Container Platform 集群上部署机密容器工作负载。

在对等 pod 方法中,您可以使用 libvirt 作为提供程序在逻辑分区(LPAR)上启动对等 pod 虚拟机(VM)。OpenShift Container Platform 集群托管在相同的 LPAR 上,可以是单节点或多节点设置,其中所有节点都作为虚拟机(guests)运行。

这种方法可在虚拟化环境中实现灵活的资源共享和隔离,使其适合在无需专用硬件的情况下进行隔离开发、测试或工作负载。

重要

IBM Z® 和 IBM® LinuxONE 上的机密容器只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

4.1. 准备

在使用对等 pod 在 IBM Z® 和 IBM® LinuxONE 上部署机密容器前,请查看这些先决条件和概念。

注意

Red Hat OpenShift Container Platform 的 IBM® Hyper Protect Confidential Container (HPCC)现已生产就绪。HPCC 通过提供多第三方 Hyper Protect Contract、在测试时部署以及验证容器运行时和 OCI 镜像的完整性,可以在企业范围内启用机密计算技术。

IBM Z17® 和 IBM® LinuxONE Emperor 5 支持 HPCC。如需更多信息,请参阅 IBM HPCC 文档

4.1.1. 先决条件

  • 您已在运行机密容器工作负载的集群中安装了最新版本的 Red Hat OpenShift Container Platform。
  • 您已在可信环境中的 OpenShift Container Platform 集群中部署了红帽构建的 Trustee。如需更多信息,请参阅 部署红帽构建信任者
  • 您使用 LinuxONE Emperor 4 或更高版本。
  • 您已在逻辑分区(LPAR)上启用了安全 Unpack Facility,这是 IBM Secure Execution 所必需的。如需更多信息,请参阅为 IBM 安全执行启用 KVM 主机

4.1.2. 对等 pod 资源要求

您必须确保集群有足够的资源。

对等 pod 虚拟机(VM)需要位于两个位置的资源:

  • worker 节点。worker 节点存储元数据、Kata shim 资源(containerd-shim-kata-v2)、remote-hypervisor 资源(cloud-api-adaptor),以及 worker 节点和对等 pod 虚拟机之间的隧道设置。
  • 云实例。这是在云中运行的实际对等 pod 虚拟机。

Kubernetes worker 节点中使用的 CPU 和内存资源由 RuntimeClass (kata-remote)定义中包含的 pod 开销 处理,用于创建对等 pod。

在云中运行的对等 pod 虚拟机总数定义为 Kubernetes 节点扩展资源。这个限制是每个节点,由 peer-pods-cm 配置映射中的 PEERPODS_LIMIT_PER_NODE 属性设置。

扩展资源名为 kata.peerpods.io/vm,并允许 Kubernetes 调度程序处理容量跟踪和核算。

在安装 OpenShift 沙盒容器 Operator 后,您可以根据环境要求编辑每个节点的限制。

变异 Webhook 将扩展的资源 kata.peerpods.io/vm 添加到 pod 规格中。如果存在,它还会从 pod 规格中删除任何特定于资源的条目。这可让 Kubernetes 调度程序考虑这些扩展资源,确保仅在资源可用时调度对等 pod。

变异 Webhook 修改 Kubernetes pod,如下所示:

  • 变异 Webhook 检查 pod 中的预期的 RuntimeClassName 值,该值在 TARGET_RUNTIMECLASS 环境变量中指定。如果 pod 规格中的值与 TARGET_RUNTIMECLASS 中的值不匹配,则 Webhook 会在不修改 pod 的情况下退出。
  • 如果 RuntimeClassName 值匹配,webhook 会对 pod 规格进行以下更改:

    1. Webhook 从 pod 中所有容器和 init 容器的 resources 字段中删除每个资源规格。
    2. Webhook 通过修改 pod 中第一个容器的 resources 字段,将扩展资源(kata.peerpods.io/vm)添加到 spec。Kubernetes 调度程序使用扩展资源 kata.peerpods.io/vm 用于核算目的。
注意

变异 Webhook 排除 OpenShift Container Platform 中的特定系统命名空间。如果在这些系统命名空间中创建了对等 pod,则使用 Kubernetes 扩展资源的资源核算不起作用,除非 pod spec 包含扩展资源。

作为最佳实践,定义集群范围的策略,仅允许在特定命名空间中创建对等 pod。

4.1.3. Initdata

initdata 规格提供了一种灵活的方法,来在运行时初始化带有特定于工作负载的数据的 pod,以避免在虚拟机(VM)镜像中嵌入此类数据。

这种方法通过减少机密信息的风险,并通过删除自定义镜像构建来提高灵活性来提高安全性。例如,initdata 可以包含三个配置设置:

  • 用于安全通信的 X.509 证书。
  • 用于身份验证的加密密钥。
  • 可选的 Kata Agent policy.rego 文件,在覆盖默认的 Kata Agent 策略时强制执行运行时行为。

initdata 内容配置以下组件:

  • attestation Agent (AA),它通过发送对测试的证据来验证 pod 的可信度。
  • 机密数据 Hub (CDH),用于管理 pod 虚拟机中的 secret 和保护数据访问。
  • Kata Agent,它强制执行运行时策略并管理 pod 虚拟机内容器的生命周期。

您可以创建一个 initdata.toml 文件,并将其转换为 Base64 编码的 gzip-format 字符串。您可以使用以下方法之一将 initdata 字符串应用到工作负载:

  • 全局配置:添加 initdata 字符串作为对等 pod 配置映射中 INITDATA 键的值,为所有对等 pod 创建默认配置。
  • Pod 配置:将 initdata 字符串作为注解添加到 pod 清单,允许自定义各个工作负载。

    注意

    pod 清单中的 initdata 注解覆盖该特定 pod 的对等 pod 配置映射中的全局 INITDATA 值。Kata 运行时在创建 pod 时自动处理这个优先级。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat