This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.3.3. 使用 CLI 部署 OpenShift 沙盒容器 Operator
您可以安装和部署 Operator,并通过 CLI 查看工作负载。
3.3.1. 使用 CLI 安装 OpenShift 沙盒容器 Operator 复制链接链接已复制到粘贴板!
您可以使用 OpenShift Container Platform CLI 安装 OpenShift 沙盒容器 Operator。
先决条件
- 已在集群中安装了 OpenShift Container Platform 4.8。
-
已安装 OpenShift CLI(
oc)。 -
您可以使用具有
cluster-admin角色的用户访问集群。 您已订阅了 OpenShift 沙盒容器目录。
注意订阅 OpenShift 沙盒容器目录为
openshift-sandboxed-containers-operator命名空间提供了对 OpenShift 沙盒容器 Operator 的访问权限。
流程
创建一个包含以下清单的 YAML 文件:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意使用 preview-1.0 频道可确保安装与 OpenShift Container Platform 版本兼容的 OpenShift 沙盒容器版本。
为 OpenShift 沙盒容器创建所需的
Namespace、OperatorGroup和Subscription对象:oc create -f <file name>.yaml
$ oc create -f <file name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 确保正确安装 Operator:
oc get csv -n openshift-sandboxed-containers-operator
$ oc get csv -n openshift-sandboxed-containers-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME DISPLAY VERSION REPLACES PHASE openshift-sandboxed-containers openshift-sandboxed-containers-operator 1.0.0 <csv-of-previous-version> Succeeded
NAME DISPLAY VERSION REPLACES PHASE openshift-sandboxed-containers openshift-sandboxed-containers-operator 1.0.0 <csv-of-previous-version> SucceededCopy to Clipboard Copied! Toggle word wrap Toggle overflow 查看可用的部署:
oc get deployments -n openshift-sandboxed-containers-operator
$ oc get deployments -n openshift-sandboxed-containers-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME READY UP-TO-DATE AVAILABLE AGE openshift-sandboxed-containers-operator 1/111 9m48s
NAME READY UP-TO-DATE AVAILABLE AGE openshift-sandboxed-containers-operator 1/111 9m48sCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
验证 Operator 是否正在运行,以便您可以创建
KataConfig资源来触发安装。oc get deployments -n openshift-sandboxed-containers-operator
$ oc get deployments -n openshift-sandboxed-containers-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME READY UP-TO-DATE AVAILABLE AGE openshift-sandboxed-containers-controller-manager 1/1 1 1 40d
NAME READY UP-TO-DATE AVAILABLE AGE openshift-sandboxed-containers-controller-manager 1/1 1 1 40dCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.3.1.1. 触发 Kata 运行时安装 复制链接链接已复制到粘贴板!
您必须创建一个 KataConfig 自定义资源(CR)来触发 OpenShift 沙盒容器 Operator 以执行以下操作:
-
在 RHCOS 节点上安装所需的 RHCOS 扩展,如 QEMU 和
kata-containers。 - 确保运行时 CRI-O 配置了正确的 Kata 运行时处理程序。
-
创建带有必要配置的
RuntimeClass自定义资源,用于虚拟化和所需额外进程导致的额外开销。
先决条件
- 已在集群中安装了 OpenShift Container Platform 4.8。
-
已安装 OpenShift CLI(
oc)。 -
您可以使用具有
cluster-admin角色的用户访问集群。
流程
创建
KataConfig资源:oc create -f <file name>.yaml
$ oc create -f <file name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
apiVersion: kataconfiguration.openshift.io/v1 kind: KataConfig metadata: name: cluster-kataconfig
apiVersion: kataconfiguration.openshift.io/v1 kind: KataConfig metadata: name: cluster-kataconfigCopy to Clipboard Copied! Toggle word wrap Toggle overflow 监控安装进度。
您可以描述
KataConfig安装:oc describe kataconfig
$ oc describe kataconfigCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 验证状态中的 Completed nodes 字段。
- 如果 Completed 节点的值与 worker 节点的数量匹配,则代表安装已完成。该状态还包含安装完成的节点的列表。
您可以通过观察
KataConfig资源来检查安装的进度:watch -n 10 oc describe kataconfig
$ watch -n 10 oc describe kataconfigCopy to Clipboard Copied! Toggle word wrap Toggle overflow 另外,您可以检查
KataConfig资源的状态。这可以通过运行oc get KataConfig <name> -oyaml并检查输出中的status字段来完成。
Kata 运行时现在在集群中安装,并可作为辅助运行时使用。验证您是否在集群中为 Kata 创建了 RuntimeClass。
OpenShift 沙盒容器仅将 Kata 安装为集群上的辅助可选运行时,而不作为主要运行时安装。
验证
您可以通过运行以下命令监控
KataConfig自定义资源的值:watch oc describe KataConfig cluster-kataconfig
$ watch oc describe KataConfig cluster-kataconfigCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.3.1.2. 为 OpenShift 沙盒容器选择节点 复制链接链接已复制到粘贴板!
您可以选择在特定 worker 上安装 Kata 运行时。
先决条件
- 已在集群中安装了 OpenShift Container Platform 4.8。
- 已安装 OpenShift CLI(oc)。
-
您可以使用具有
cluster-admin角色的用户访问集群。
流程
确定您要用来选择节点的标签。在本例中,使用标签选择作为候选者,以便在 OpenShift 沙盒容器工作负载上运行。如果节点存在,则会选择它们。
要将标签应用到节点,请运行以下命令:
oc label node <worker_node_name> <label>=<value>
$ oc label node <worker_node_name> <label>=<value>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这会使用
<label>标签标记您的 worker 节点,该标签值为<value>。
要添加标签选择器,请编辑
KataConfig自定义资源(CR):oc edit kataconfig
$ oc edit kataconfigCopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
您可以检查
machine-config-pool对象中的节点是否经历配置更新。如果使用默认节点,您可以运行以下命令来监控
machine-config-pool资源:watch oc get mcp worker
$ watch oc get mcp workerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果使用所选节点,您可以运行以下命令监控
machine-config-pool资源:watch oc get mcp kata-oc
$ watch oc get mcp kata-ocCopy to Clipboard Copied! Toggle word wrap Toggle overflow
您可以运行
watch oc describe kataconfig cluster-kataconfig来显示节点上sandboxed-containers扩展失败的信息。这些信息从machine-config-pool对象的状态收集。您可以运行以下命令查看信息:oc describe mcp <machine-config-pool>
$ oc describe mcp <machine-config-pool>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.3.1.3. 调度 OpenShift 沙盒容器工作负载 复制链接链接已复制到粘贴板!
您可以调度工作负载在 OpenShift 沙盒容器中运行。
先决条件
- 已在集群中安装了 OpenShift Container Platform 4.8。
-
已安装 OpenShift CLI(
oc)。 -
您可以使用具有
cluster-admin角色的用户访问集群。
流程
将
runtimeClassName: kata添加到任何 pod 模板化的资源:-
Pod对象 -
ReplicaSet对象 -
ReplicationController对象 -
StatefulSet对象 -
Deployment对象 -
deploymentConfig对象
-
Pod 对象示例
Deployment 对象示例
当创建了带有 runtimeClassName: kata 的 pod 模板化的资源后,OpenShift Container Platform 开始将工作负载调度到启用了 OpenShift 沙盒的容器。如果没有使用选择器,则默认设置为所有 worker 节点。您的工作负载在 OpenShift 沙盒容器中运行。
3.3.2. 通过 CLI 查看 OpenShift 沙盒容器工作负载 复制链接链接已复制到粘贴板!
您可以从 CLI 查看用于工作负载的 pod 的 runtimeClass。
先决条件
- 已在集群中安装了 OpenShift Container Platform 4.8。
-
已安装 OpenShift CLI(
oc)。 -
您可以使用具有
cluster-admin角色的用户访问集群。
流程
检查 pod 上的
runtimeClassName字段,以查看 OpenShift 沙盒容器中运行的 pod 与普通容器。-
在节点上,每个 pod 具有对应的
qemu进程。
-
在节点上,每个 pod 具有对应的
验证
您可以检查
openshift-sandboxed-containers-operator控制器 pod 的日志,以查看其正在运行的步骤的详细信息。您可以运行以下命令来检索控制器 pod 的名称:
oc get pods -n openshift-sandboxed-containers-operator | grep openshift-sandboxed-containers-operator-controller-manager
$ oc get pods -n openshift-sandboxed-containers-operator | grep openshift-sandboxed-containers-operator-controller-managerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 这可让您监控该 pod 的容器管理器的日志。