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 的访问权限。

流程

  1. 创建一个包含以下清单的 YAML 文件:

    apiVersion: v1
    kind: Namespace
    metadata:
      name: openshift-sandboxed-containers-operator
    ---
    apiVersion: operators.coreos.com/v1
    kind: OperatorGroup
    metadata:
      name: openshift-sandboxed-containers-kataconfig-group
      namespace: openshift-sandboxed-containers-operator
    spec:
      targetNamespaces:
        - openshift-sandboxed-containers-operator
    ---
    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: sandboxed-containers-operatorhub
      namespace: openshift-sandboxed-containers-operator
    spec:
      source: redhat-operators
      sourceNamespace: openshift-marketplace
      name: sandboxed-containers-operator
      startingCSV: sandboxed-containers-operator.v1.0.0
      channel: "preview-1.0"
      approval: "Automatic"
    Copy to Clipboard Toggle word wrap
    注意

    使用 preview-1.0 频道可确保安装与 OpenShift Container Platform 版本兼容的 OpenShift 沙盒容器版本。

  2. 为 OpenShift 沙盒容器创建所需的 NamespaceOperatorGroupSubscription 对象:

    $ oc create -f <file name>.yaml
    Copy to Clipboard Toggle word wrap
  3. 确保正确安装 Operator:

    $ oc get csv -n openshift-sandboxed-containers-operator
    Copy to Clipboard Toggle word wrap

    输出示例

    NAME                             DISPLAY                                  VERSION  REPLACES                    PHASE
    openshift-sandboxed-containers   openshift-sandboxed-containers-operator  1.0.0    <csv-of-previous-version>   Succeeded
    Copy to Clipboard Toggle word wrap

  4. 查看可用的部署:

    $ oc get deployments -n openshift-sandboxed-containers-operator
    Copy to Clipboard Toggle word wrap

    输出示例

    NAME                                        READY  UP-TO-DATE   AVAILABLE   AGE
    openshift-sandboxed-containers-operator                         1/111       9m48s
    Copy to Clipboard Toggle word wrap

验证

  • 验证 Operator 是否正在运行,以便您可以创建 KataConfig 资源来触发安装。

    $ oc get deployments -n openshift-sandboxed-containers-operator
    Copy to Clipboard Toggle word wrap

    输出示例

    NAME                                                READY   UP-TO-DATE   AVAILABLE   AGE
    openshift-sandboxed-containers-controller-manager   1/1     1            1           40d
    Copy to Clipboard Toggle word wrap

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 角色的用户访问集群。

流程

  1. 创建 KataConfig 资源:

    $ oc create -f <file name>.yaml
    Copy to Clipboard Toggle word wrap

    示例

    apiVersion: kataconfiguration.openshift.io/v1
    kind: KataConfig
    metadata:
      name: cluster-kataconfig
    Copy to Clipboard Toggle word wrap

  2. 监控安装进度。

    • 您可以描述 KataConfig 安装:

      $ oc describe kataconfig
      Copy to Clipboard Toggle word wrap
      • 验证状态中的 Completed nodes 字段。
      • 如果 Completed 节点的值与 worker 节点的数量匹配,则代表安装已完成。该状态还包含安装完成的节点的列表。
    • 您可以通过观察 KataConfig 资源来检查安装的进度:

      $ watch -n 10 oc describe kataconfig
      Copy to Clipboard Toggle word wrap

      另外,您可以检查 KataConfig 资源的状态。这可以通过运行 oc get KataConfig <name> -oyaml 并检查输出中的 status 字段来完成。

Kata 运行时现在在集群中安装,并可作为辅助运行时使用。验证您是否在集群中为 Kata 创建了 RuntimeClass

重要

OpenShift 沙盒容器仅将 Kata 安装为集群上的辅助可选运行时,而不作为主要运行时安装。

验证

  • 您可以通过运行以下命令监控 KataConfig 自定义资源的值:

    $ watch oc describe KataConfig cluster-kataconfig
    Copy to Clipboard Toggle word wrap

3.3.1.2. 为 OpenShift 沙盒容器选择节点

您可以选择在特定 worker 上安装 Kata 运行时。

先决条件

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

流程

  1. 确定您要用来选择节点的标签。在本例中,使用标签选择作为候选者,以便在 OpenShift 沙盒容器工作负载上运行。如果节点存在,则会选择它们。

    1. 要将标签应用到节点,请运行以下命令:

      $ oc label node <worker_node_name> <label>=<value>
      Copy to Clipboard Toggle word wrap

      这会使用 <label> 标签标记您的 worker 节点,该标签值为 <value>

  2. 要添加标签选择器,请编辑 KataConfig 自定义资源(CR):

    $ oc edit kataconfig
    Copy to Clipboard Toggle word wrap

    示例

      apiVersion: kataconfiguration.openshift.io/v1
      kind: KataConfig
      metadata:
        name: cluster-kataconfig
      spec:
        kataConfigPoolSelector:
          matchLabels:
             custom-kata-machine-pool: 'true'
    Copy to Clipboard Toggle word wrap

验证

  • 您可以检查 machine-config-pool 对象中的节点是否经历配置更新。

    • 如果使用默认节点,您可以运行以下命令来监控 machine-config-pool 资源:

      $ watch oc get mcp worker
      Copy to Clipboard Toggle word wrap
    • 如果使用所选节点,您可以运行以下命令监控 machine-config-pool 资源:

      $ watch oc get mcp kata-oc
      Copy to Clipboard Toggle word wrap
  • 您可以运行 watch oc describe kataconfig cluster-kataconfig 来显示节点上 sandboxed-containers 扩展失败的信息。这些信息从 machine-config-pool 对象的状态收集。您可以运行以下命令查看信息:

    $ oc describe mcp <machine-config-pool>
    Copy to Clipboard Toggle word wrap

3.3.1.3. 调度 OpenShift 沙盒容器工作负载

您可以调度工作负载在 OpenShift 沙盒容器中运行。

先决条件

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

流程

  1. runtimeClassName: kata 添加到任何 pod 模板化的资源:

    • Pod 对象
    • ReplicaSet 对象
    • ReplicationController 对象
    • StatefulSet 对象
    • Deployment 对象
    • deploymentConfig 对象

Pod 对象示例

  apiVersion: v1
  kind: Pod
  metadata:
   name: mypod
  spec:
    runtimeClassName: kata
Copy to Clipboard Toggle word wrap

Deployment 对象示例

  apiVersion: apps/v1
  kind: Deployment
  metadata:
    name: mypod
    labels:
      app: mypod
  spec:
    replicas: 3
    selector:
      matchLabels:
        app: mypod
    template:
      metadata:
        labels:
          app: mypod
      spec:
        runtimeClassName: kata
        containers:
        - name: mypod
          image: myImage
Copy to Clipboard Toggle word wrap

当创建了带有 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 进程。

验证

  • 您可以检查 openshift-sandboxed-containers-operator 控制器 pod 的日志,以查看其正在运行的步骤的详细信息。

    • 您可以运行以下命令来检索控制器 pod 的名称:

      $ oc get pods -n openshift-sandboxed-containers-operator | grep openshift-sandboxed-containers-operator-controller-manager
      Copy to Clipboard Toggle word wrap

      这可让您监控该 pod 的容器管理器的日志。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat