9.3. 更新 pod 虚拟机镜像
对于对等 pod 部署,您必须更新 pod 虚拟机镜像。当 enablePeerpods:
为 true
时,升级 OpenShift 沙盒容器 Operator 不会自动更新 pod 虚拟机镜像。您还必须删除并重新创建 KataConfig
自定义资源(CR)。
您还可以检查 AWS 和 Azure 部署的对等 pod 配置映射,以确保在重新创建 KataConfig
CR 前镜像 ID 为空。
9.3.1. 删除 KataConfig 自定义资源 复制链接链接已复制到粘贴板!
您可以使用命令行删除 KataConfig
自定义资源(CR)。
流程
运行以下命令来删除
KataConfig
CR:oc delete kataconfig example-kataconfig
$ oc delete kataconfig example-kataconfig
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令验证 CR 移除:
oc get kataconfig example-kataconfig
$ oc get kataconfig example-kataconfig
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
No example-kataconfig instances exist
No example-kataconfig instances exist
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
您必须确保所有 pod 都被删除。任何剩余的 pod 资源都可能会导致云供应商出现意外几率。
9.3.2. 验证镜像 ID 是否为空 复制链接链接已复制到粘贴板!
对于 AWS 和 Azure 部署,在删除 KataConfig
自定义资源(CR)后,您必须验证对等 pod 配置映射中的镜像 ID 是否为空。
流程
运行以下命令来获取对等 pod 配置映射:
oc get configmap -n openshift-sandboxed-containers-operator peer-pods-cm -o jsonpath="{.data.<image_id>}"
$ oc get configmap -n openshift-sandboxed-containers-operator peer-pods-cm -o jsonpath="{.data.<image_id>}"
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 对于 AWS,将 &
lt;image_id&
gt; 替换为PODVM_AMI_ID
。对于 Azure,将 <image_id&
gt; 替换为AZURE_IMAGE_ID
。
如果值不为空,请运行以下命令更新值并修补配置映射:
oc patch configmap peer-pods-cm -n openshift-sandboxed-containers-operator -p '{"data":{"<image_id>":""}}'
$ oc patch configmap peer-pods-cm -n openshift-sandboxed-containers-operator -p '{"data":{"<image_id>":""}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.3.3. 创建 KataConfig 自定义资源 复制链接链接已复制到粘贴板!
您必须创建 KataConfig
自定义资源(CR)来作为 worker 节点上的运行时类安装 kata-remote
。
OpenShift 沙盒容器将 kata-remote
安装为集群上的 辅助 可选运行时,而不是主运行时。
创建 KataConfig
CR 会自动重启 worker 节点。重启可能需要 10 到 60 分钟。以下因素可以提高重启时间:
- 带有更多 worker 节点的大型 OpenShift Container Platform 部署。
- 激活 BIOS 和 Diagnostics 实用程序。
- 在硬盘而不是 SSD 上部署。
- 在物理节点上部署,如裸机,而不是在虚拟节点上部署。
- CPU 和网络较慢。
流程
根据以下示例创建
example-kataconfig.yaml
清单文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 可选:如果您应用了节点标签在特定节点上安装
kata-remote
,请指定键和值,例如osc: 'true'
。
运行以下命令来创建
KataConfig
CR:oc apply -f example-kataconfig.yaml
$ oc apply -f example-kataconfig.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新的
KataConfig
CR 被创建,并在 worker 节点上作为运行时类安装kata-remote
。在验证安装前,等待
kata-remote
安装完成,以及 worker 节点重新引导。运行以下命令监控安装进度:
watch "oc describe kataconfig | sed -n /^Status:/,/^Events/p"
$ watch "oc describe kataconfig | sed -n /^Status:/,/^Events/p"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 安装
kataNodes
下所有 worker 的状态并且条件InProgress
为False
时,而不指定原因,则会在集群中安装kata-remote
。运行以下命令,验证您是否已构建对等 pod 镜像并将其上传到 libvirt 卷中:
oc describe configmap peer-pods-cm -n openshift-sandboxed-containers-operator
$ oc describe configmap peer-pods-cm -n openshift-sandboxed-containers-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,监控
kata-oc
机器配置池进度,以确保它处于UPDATED
状态,当UPDATED
等于 MACHINECOUNT 时:MACHINECOUNT
watch oc get mcp/kata-oc
$ watch oc get mcp/kata-oc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令验证守护进程集:
oc get -n openshift-sandboxed-containers-operator ds/osc-caa-ds
$ oc get -n openshift-sandboxed-containers-operator ds/osc-caa-ds
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令验证运行时类:
oc get runtimeclass
$ oc get runtimeclass
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME HANDLER AGE kata-remote kata-remote 152m
NAME HANDLER AGE kata-remote kata-remote 152m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow