10.3. 更新 pod 虚拟机镜像


对于 AWS、Azure 和 IBM 部署,您必须更新 pod 虚拟机镜像。当 enablePeerpods: paramter 为 true 时,升级 OpenShift 沙盒容器 Operator 不会自动更新现有的 pod 虚拟机镜像。要在升级后更新 pod 虚拟机镜像,您必须删除并重新创建 KataConfig CR。

注意

您还可以检查 AWS 和 Azure 部署的对等 pod 配置映射,以确保在重新创建 KataConfig CR 前镜像 ID 为空。

10.3.1. 删除 KataConfig 自定义资源

您可以使用命令行删除 KataConfig 自定义资源(CR)。

先决条件

  • 已安装 OpenShift CLI(oc)。
  • 您可以使用具有 cluster-admin 角色的用户访问集群。

流程

  1. 运行以下命令来删除 KataConfig CR:

    $ oc delete kataconfig example-kataconfig
    Copy to Clipboard Toggle word wrap
  2. 运行以下命令验证自定义资源是否已删除:

    $ oc get kataconfig example-kataconfig
    Copy to Clipboard Toggle word wrap

    输出示例

    No example-kataconfig instances exist
    Copy to Clipboard Toggle word wrap

重要

卸载使用云供应商部署的 OpenShift 沙盒容器时,您必须删除所有 pod。任何剩余的 pod 资源都可能会导致云供应商出现意外几率。

10.3.2. 确保对等 pod CM 镜像 ID 为空

删除 KataConfig CR 时,它应该删除 peer pod CM 镜像 ID。对于 AWS 和 Azure 部署,检查以确保对等 pod CM 镜像 ID 为空。

流程

  1. 获取您为对等 pod 创建的配置映射:

    $ oc get cm -n openshift-sandboxed-containers-operator peer-pods-cm -o jsonpath="{.data.AZURE_IMAGE_ID}"
    Copy to Clipboard Toggle word wrap

    AWS 使用 PODVM_AMI_ID。Azure 使用 AZURE_IMAGE_ID

  2. 检查 YAML 文件的状态小节。
  3. 如果 AWS 的 PODVM_AMI_ID 参数或 Azure 的 AZURE_IMAGE_ID 参数包含一个值,请将值设为 ""。
  4. 如果将值设为 "",请修补对等 pod 配置映射:

    $ oc patch configmap peer-pods-cm -n openshift-sandboxed-containers-operator -p '{"data":{"AZURE_IMAGE_ID":""}}'
    Copy to Clipboard Toggle word wrap

    AWS 使用 PODVM_AMI_ID。Azure 使用 AZURE_IMAGE_ID

10.3.3. 创建 KataConfig 自定义资源

您必须创建 KataConfig 自定义资源(CR)来作为 worker 节点上的运行时类安装 kata-remote

创建 KataConfig CR 会触发 OpenShift 沙盒容器 Operator 来执行以下操作:

  • 使用默认配置创建一个名为 kata-remoteRuntimeClass CR。这可让用户在 RuntimeClassName 字段中引用 CR 将工作负载配置为使用 kata-remote 作为运行时。此 CR 也指定运行时的资源开销。

OpenShift 沙盒容器将 kata-remote 安装为集群上的 辅助 可选运行时,而不是主运行时。

重要

创建 KataConfig CR 会自动重启 worker 节点。重启可能需要 10 到 60 分钟。妨碍重启时间的因素如下:

  • 带有更多 worker 节点的大型 OpenShift Container Platform 部署。
  • 激活 BIOS 和 Diagnostics 实用程序。
  • 在硬盘而不是 SSD 上部署。
  • 在物理节点上部署,如裸机,而不是在虚拟节点上部署。
  • CPU 和网络较慢。

先决条件

  • 您可以使用具有 cluster-admin 角色的用户访问集群。

流程

  1. 根据以下示例创建 example-kataconfig.yaml 清单文件:

    apiVersion: kataconfiguration.openshift.io/v1
    kind: KataConfig
    metadata:
      name: example-kataconfig
    spec:
      enablePeerPods: true
      logLevel: info
    #  kataConfigPoolSelector:
    #    matchLabels:
    #      <label_key>: '<label_value>' 
    1
    Copy to Clipboard Toggle word wrap
  2. 运行以下命令来创建 KataConfig CR:

    $ oc apply -f example-kataconfig.yaml
    Copy to Clipboard Toggle word wrap

    新的 KataConfig CR 被创建,并在 worker 节点上作为运行时类安装 kata-remote

    在验证安装前,等待 kata-remote 安装完成,以及 worker 节点重新引导。

  3. 运行以下命令监控安装进度:

    $ watch "oc describe kataconfig | sed -n /^Status:/,/^Events/p"
    Copy to Clipboard Toggle word wrap

    安装 kataNodes 下所有 worker 的状态并且条件 InProgressFalse 时,而不指定原因,则会在集群中安装 kata-remote

  4. 运行以下命令验证守护进程集:

    $ oc get -n openshift-sandboxed-containers-operator ds/peerpodconfig-ctrl-caa-daemon
    Copy to Clipboard Toggle word wrap
  5. 运行以下命令验证运行时类:

    $ oc get runtimeclass
    Copy to Clipboard Toggle word wrap

    输出示例

    NAME             HANDLER          AGE
    kata             kata             152m
    kata-remote      kata-remote      152m
    Copy to Clipboard Toggle word wrap

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat