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
角色的用户访问集群。
流程
运行以下命令来删除
KataConfig
CR:$ oc delete kataconfig example-kataconfig
运行以下命令验证自定义资源是否已删除:
$ oc get kataconfig example-kataconfig
输出示例
No example-kataconfig instances exist
10.3.2. 确保对等 pod CM 镜像 ID 为空
删除 KataConfig
CR 时,它应该删除 peer pod CM 镜像 ID。对于 AWS 和 Azure 部署,检查以确保对等 pod CM 镜像 ID 为空。
流程
获取您为对等 pod 创建的配置映射:
$ oc get cm -n openshift-sandboxed-containers-operator peer-pods-cm -o jsonpath="{.data.AZURE_IMAGE_ID}"
AWS 使用
PODVM_AMI_ID
。Azure 使用AZURE_IMAGE_ID
。- 检查 YAML 文件的状态小节。
-
如果 AWS 的
PODVM_AMI_ID
参数或 Azure 的AZURE_IMAGE_ID
参数包含一个值,请将值设为 ""。 如果将值设为 "",请修补对等 pod 配置映射:
$ oc patch configmap peer-pods-cm -n openshift-sandboxed-containers-operator -p '{"data":{"AZURE_IMAGE_ID":""}}'
AWS 使用
PODVM_AMI_ID
。Azure 使用AZURE_IMAGE_ID
。
10.3.3. 创建 KataConfig 自定义资源
您必须创建 KataConfig
自定义资源(CR)来作为 worker 节点上的运行时类安装 kata-remote
。
创建 KataConfig
CR 会触发 OpenShift 沙盒容器 Operator 来执行以下操作:
-
使用默认配置创建一个名为
kata-remote
的RuntimeClass
CR。这可让用户在RuntimeClassName
字段中引用 CR 将工作负载配置为使用kata-remote
作为运行时。此 CR 也指定运行时的资源开销。
OpenShift 沙盒容器将 kata-remote
安装为集群上的 辅助 可选运行时,而不是主运行时。
创建 KataConfig
CR 会自动重启 worker 节点。重启可能需要 10 到 60 分钟。妨碍重启时间的因素如下:
- 带有更多 worker 节点的大型 OpenShift Container Platform 部署。
- 激活 BIOS 和 Diagnostics 实用程序。
- 在硬盘而不是 SSD 上部署。
- 在物理节点上部署,如裸机,而不是在虚拟节点上部署。
- CPU 和网络较慢。
先决条件
-
您可以使用具有
cluster-admin
角色的用户访问集群。
流程
根据以下示例创建
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
运行以下命令来创建
KataConfig
CR:$ oc apply -f example-kataconfig.yaml
新的
KataConfig
CR 被创建,并在 worker 节点上作为运行时类安装kata-remote
。在验证安装前,等待
kata-remote
安装完成,以及 worker 节点重新引导。运行以下命令监控安装进度:
$ watch "oc describe kataconfig | sed -n /^Status:/,/^Events/p"
安装
kataNodes
下所有 worker 的状态并且条件InProgress
为False
时,而不指定原因,则会在集群中安装kata-remote
。运行以下命令验证守护进程集:
$ oc get -n openshift-sandboxed-containers-operator ds/peerpodconfig-ctrl-caa-daemon
运行以下命令验证运行时类:
$ oc get runtimeclass
输出示例
NAME HANDLER AGE kata kata 152m kata-remote kata-remote 152m