3.2. 使用 Web 控制台部署 OpenShift 沙盒容器工作负载

您可从 web 控制台部署 OpenShift 沙盒容器工作负载。首先,您必须安装 OpenShift 沙盒容器 Operator,然后创建 KataConfig 自定义资源 (CR)。在沙盒容器中部署工作负载后,您必须手动将 kata 作为 runtimeClassName 添加到工作负载 YAML 文件中。

3.2.1. 使用 Web 控制台安装 OpenShift 沙盒容器 Operator

您可从 OpenShift Container Platform Web 控制台安装 OpenShift 沙盒容器 Operator。

先决条件

  • 已安装 OpenShift Container Platform 4.12。
  • 您可以使用具有 cluster-admin 角色的用户访问集群。

流程

  1. 从 Web 控制台中的 Administrator 视角,进入到 OperatorsOperatorHub
  2. Filter by keyword 字段中,输入 OpenShift sandboxed containers
  3. 选择 OpenShift sandboxed containers 标题。
  4. 阅读 Operator 信息并单击 Install
  5. Install Operator 页面中:

    1. 从可用 Update Channel 选项列表中选择 stable-1.3
    2. 验证为 Installed Namespace 选择了 Operator recommended Namespace。这会在 openshift-sandboxed-containers-operator 命名空间中安装 Operator。如果此命名空间尚不存在,则会自动创建。

      注意

      尝试在 openshift-sandboxed-containers-operator 以外的命名空间中安装 OpenShift 沙盒容器 Operator 会导致安装失败。

    3. 验证是否为 Approval Strategy 选择了 AutomaticAutomatic 是默认值,当有新的 z-stream 发行版本可用时,自动启用对 OpenShift 沙盒容器的自动更新。
  6. Install

OpenShift 沙盒容器 Operator 现已安装在集群中。

验证

  1. 从 Web 控制台中的 Administrator 视角,导航到 OperatorsInstalled Operators
  2. 验证 OpenShift 沙盒容器 Operator 是否在 operator 列表中列出。

3.2.2. 在 web 控制台中创建 KataConfig 自定义资源

您必须创建一个 KataConfig 自定义资源(CR),以便在集群节点上启用将 kata 作为 RuntimeClass

重要

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

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

先决条件

  • 在集群中安装了 OpenShift Container Platform 4.12。
  • 您可以使用具有 cluster-admin 角色的用户访问集群。
  • 已安装 OpenShift 沙盒容器 Operator。
注意

Kata 默认安装在所有 worker 节点上。如果要在特定节点上安装 kata 作为 RuntimeClass,您可以向这些节点添加标签,然后在创建时定义 KataConfig CR 中的标签。

流程

  1. 从 Web 控制台中的 Administrator 视角,导航到 OperatorsInstalled Operators
  2. 从 Operator 列表中选择 OpenShift 沙盒容器 Operator。
  3. KataConfig 选项卡中,点 Create KataConfig
  4. Create KataConfig 页面中,输入以下详情:

    • 名称 :输入 KataConfig 资源的名称。默认情况下,名称定义为 example-kataconfig
    • Labels (可选):输入任何相关的、识别到 KataConfig 资源的属性。每个标签代表一个键值对。
    • checkNodeEligibility (可选):选择此复选框以使用 Node Feature Discovery Operator (NFD) 检测节点资格以作为 RuntimeClass 运行 kata。如需更多信息,请参阅"检查集群节点是否有资格运行 OpenShift 沙盒容器"。
    • kataConfigPoolSelector :默认情况下,kata 在所有节点上作为 RuntimeClass 安装。如果要在所选节点上安装 kata 作为 RuntimeClass,您必须添加一个 matchExpression

      1. 展开 kataConfigPoolSelector 区域。
      2. kataConfigPoolSelector 中,展开 matchExpressions。这是标签选择器要求列表。
      3. Add matchExpressions
      4. key 字段中,添加选择器应用到的标签键。
      5. operator 字段中,添加键与标签值的关系。有效的运算符为 InNotInExistsDoesNotExist
      6. 展开 values 区域,然后点 Add value
      7. Value 字段中,为 key 标签值输入 truefalse
    • loglevel :定义为将 kata 作为 RuntimeClass 运行的节点检索的日志数据级别。如需更多信息,请参阅"收集 OpenShift 沙盒容器数据"。
  5. Create

新的 KataConfig CR 会被创建,并开始在 worker 节点上作为 RuntimeClass 安装 kata。等待 kata 安装完成,以及 worker 节点重启,然后继续下一步。

重要

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

验证

  1. KataConfig 选项卡中,选择新的 KataConfig CR。
  2. KataConfig 页面中,选择 YAML 选项卡。
  3. 监控状态中的 installationStatus 字段。

    每次有更新时都会出现一条消息。点 Reload 查看更新的 KataConfig CR。

    Completed nodes 的值等于 worker 或已标记的节点的数量,则代表安装已完成。该状态还包含安装完成的节点的列表。

3.2.3. 使用 Web 控制台在沙盒容器中部署工作负载

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

要在沙盒容器中部署 pod 模板工作负载,您必须手动将 kata 作为 runtimeClassName 添加到工作负载 YAML 文件中。

先决条件

  • 在集群中安装了 OpenShift Container Platform 4.12。
  • 您可以使用具有 cluster-admin 角色的用户访问集群。
  • 已安装 OpenShift 沙盒容器 Operator。
  • 您已创建了 KataConfig 自定义资源 (CR)。

流程

  1. 从 web 控制台中的 Administrator 视角,展开 Workloads 并选择您要创建的工作负载类型。
  2. 在工作负载页面中,点击以创建工作负载。
  3. 在工作负载的 YAML 文件中,在列出容器的 spec 字段中,添加 runtimeClassName: kata

    Pod 示例

        apiVersion: v1
        kind: Pod
        metadata:
          name: example
          labels:
            app: httpd
          namespace: openshift-sandboxed-containers-operator
        spec:
          runtimeClassName: kata
          containers:
            - name: httpd
              image: 'image-registry.openshift-image-registry.svc:5000/openshift/httpd:latest'
              ports:
                - containerPort: 8080

    部署示例

        apiVersion: apps/v1
        kind: Deployment
        metadata:
          name: example
          namespace: openshift-sandboxed-containers-operator
        spec:
          selector:
            matchLabels:
              app: httpd
          replicas: 3
          template:
            metadata:
              labels:
                app: httpd
            spec:
              runtimeClassName: kata
              containers:
                - name: httpd
                  image: >-
                    image-registry.openshift-image-registry.svc:5000/openshift/httpd:latest
                  ports:
                    - containerPort: 8080

  4. 点击 Save

OpenShift Container Platform 创建工作负载并开始调度它。