3.2. 使用带有 Web 控制台的对等 pod 部署 OpenShift 沙盒容器工作负载


您可从 web 控制台部署 OpenShift 沙盒容器工作负载。首先,您必须安装 OpenShift 沙盒容器 Operator,然后创建一个 secret 对象、虚拟机镜像和 peer-pod ConfigMap。secret 对象和 ConfigMap 是唯一的,具体取决于您的云供应商。最后,您必须创建 KataConfig 自定义资源(CR)。在沙盒容器中部署工作负载后,您必须手动将 kata-remote 作为 runtimeClassName 添加到工作负载 YAML 文件中。

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

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

先决条件

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

流程

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

    1. 从可用 Update Channel 选项列表中选择 stable
    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 视角,导航到 Operators Installed Operators
  2. 验证 OpenShift 沙盒容器 Operator 是否在 operator 列表中列出。

3.2.2. 使用 Web 控制台为 AWS 配置 peer-pod 参数

您必须创建一个 secret 对象和 ConfigMap,以使用 AWS 上的对等 pod 部署 OpenShift 沙盒容器。

创建 secret 对象后,您仍必须创建 KataConfig 自定义资源(CR)来使用对等 pod 部署 OpenShift 沙盒容器。

先决条件

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

3.2.2.1. 使用 Web 控制台为 AWS 创建 secret 对象

设置 AWS 访问密钥并在 secret 对象中配置网络。secret 对象用于创建 pod 虚拟机镜像,并由对等 pod 使用。

为 AWS 创建 secret 对象时,您必须设置特定的环境值。在创建 secret 对象前,您可以检索其中的一些值。必须使用 CLI 检索这些值。如需更多信息,请参阅使用 CLI 为 AWS 创建 secret 对象

另外,在 AWS web 控制台中,您必须生成并保存以下值:

  • AWS_ACCESS_KEY_ID
  • AWS_SECRET_ACCESS_KEY

流程

  1. 从 Web 控制台中的 Administrator 视角,导航到 Operators Installed Operators
  2. 从 Operator 列表中选择 OpenShift 沙盒容器 Operator。
  3. 单击右上角的 Import 图标 (+)。
  4. Import YAML 窗口中,粘贴以下 YAML 清单:

    apiVersion: v1
    kind: Secret
    metadata:
      name: peer-pods-secret
      namespace: openshift-sandboxed-containers-operator
    type: Opaque
    stringData:
      AWS_ACCESS_KEY_ID: "<enter value>" 1
      AWS_SECRET_ACCESS_KEY: "<enter value>" 2
      AWS_REGION: "<enter value>" 3
      AWS_SUBNET_ID: "<enter value>" 4
      AWS_VPC_ID: "<enter value>" 5
      AWS_SG_IDS: "<enter value>" 6
    1
    在开始之前,输入您准备的 AWS_ACCESS_KEY_ID 值。
    2
    在开始之前,输入您准备的 AWS_SECRET_ACCESS_KEY 值。
    3
    输入您检索到的 AWS_REGION 值。
    4
    输入您检索到的 AWS_SUBNET_ID 值。
    5
    输入您检索到的 AWS_VPC_ID 值。
    6
    输入您检索到的 AWS_SG_IDS 值。
  5. Create

secret 对象已创建。您可以看到它列在 Workloads Secrets 下。

注意

如果更新对等 pod secret,您必须重启 peerpodconfig-ctrl-caa-daemon daemonset 以应用更改。

更新 secret 后,点 Save 应用更改。然后运行以下命令来重启 cloud-api-adaptor pod:

$ oc set env ds/peerpodconfig-ctrl-caa-daemon -n openshift-sandboxed-containers-operator REBOOT="$(date)"

请记住,重启 daemonset 会重新创建对等 pod,它不会更新现有的 pod。

3.2.2.2. 使用 Web 控制台为 AWS 创建 peer-pod ConfigMap

您可以使用 Web 控制台为 AWS 创建 peer-pod ConfigMap

流程

  1. 从 Web 控制台中的 Administrator 视角,导航到 Operators Installed Operators
  2. 从 Operator 列表中选择 OpenShift 沙盒容器 Operator。
  3. 单击右上角的 Import 图标 (+)。
  4. Import YAML 窗口中,粘贴以下 YAML 清单:

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: peer-pods-cm
      namespace: openshift-sandboxed-containers-operator
    data:
      CLOUD_PROVIDER: "aws"
      VXLAN_PORT: "9000"
      PODVM_INSTANCE_TYPE: "t3.medium" 1
      PODVM_INSTANCE_TYPES: "t2.small,t2.medium,t3.large" 2
      PROXY_TIMEOUT: "5m"
    1
    定义工作负载中没有定义类型时使用的默认实例类型。
    2
    列出创建 pod 时可以指定的所有实例类型。这可让您为需要较少的内存和 CPU 或更大实例的工作负载定义较小的实例。
  5. Create

ConfigMap 对象已创建。您可以看到它在 Workloads ConfigMaps 下列出。

注意

如果更新 peer pod 配置映射,您必须重启 peerpodconfig-ctrl-caa-daemon daemonset 以应用更改。

更新配置映射后,点 Save 应用更改。然后运行以下命令来重启 cloud-api-adaptor pod:

$ oc set env ds/peerpodconfig-ctrl-caa-daemon -n openshift-sandboxed-containers-operator REBOOT="$(date)"

请记住,重启 daemonset 会重新创建对等 pod,它不会更新现有的 pod。

创建 KataConfig CR 后,您可以使用 AWS 上的对等 pod 运行 OpenShift 沙盒容器。

3.2.3. 使用 Web 控制台为 Azure 配置 peer-pod 参数

您必须创建一个 secret 对象和 ConfigMap,以便使用 Microsoft Azure 上的对等 pod 部署 OpenShift 沙盒容器。

创建 secret 对象后,您仍必须创建 KataConfig 自定义资源(CR)来使用对等 pod 部署 OpenShift 沙盒容器。

先决条件

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

3.2.3.1. 使用 Web 控制台为 Azure 创建 secret 对象

设置 Azure 访问密钥并在 secret 对象中配置网络。secret 对象用于创建 pod 虚拟机镜像,并由对等 pod 使用。

为 Azure 创建 secret 对象时,您必须设置特定的环境值。您可以在创建 secret 对象前检索这些值。必须使用 CLI 检索这些值。如需更多信息,请参阅使用 CLI 为 Azure 创建 secret 对象

流程

  1. 从 Web 控制台中的 Administrator 视角,导航到 Operators Installed Operators
  2. 从 Operator 列表中选择 OpenShift 沙盒容器 Operator。
  3. 单击右上角的 Import 图标 (+)。
  4. Import YAML 窗口中,粘贴以下 YAML 清单:

    apiVersion: v1
    kind: Secret
    metadata:
      name: peer-pods-secret
      namespace: openshift-sandboxed-containers-operator
    type: Opaque
    stringData:
      AZURE_CLIENT_ID: "<enter value>" 1
      AZURE_CLIENT_SECRET: "<enter value>" 2
      AZURE_TENANT_ID: "<enter value>" 3
      AZURE_SUBSCRIPTION_ID: "<enter value>" 4
      AZURE_REGION: "<enter value>" 5
      AZURE_RESOURCE_GROUP: "<enter value>" 6
    1
    输入您在 RBAC 文件中生成的 AZURE_CLIENT_ID 值。
    2
    输入您在 RBAC 文件中生成的 AZURE_CLIENT_SECRET 值。
    3
    输入您在 RBAC 文件中生成的 AZURE_TENANT_ID 值。
    4
    输入您检索到的 AZURE_SUBSCRIPTION_ID 值。
    5
    输入您检索到的 AZURE_REGION 值。
    6
    输入您检索到的 AZURE_RESOURCE_GROUP 值。
  5. Create

secret 对象已创建。您可以看到它列在 Workloads Secrets 下。

注意

如果更新对等 pod secret,您必须重启 peerpodconfig-ctrl-caa-daemon daemonset 以应用更改。

更新 secret 后,点 Save 应用更改。然后运行以下命令来重启 cloud-api-adaptor pod:

$ oc set env ds/peerpodconfig-ctrl-caa-daemon -n openshift-sandboxed-containers-operator REBOOT="$(date)"

请记住,重启 daemonset 会重新创建对等 pod,它不会更新现有的 pod。

3.2.3.2. 使用 Web 控制台为 Azure 创建 peer-pod ConfigMap

您可以使用 Web 控制台为 Azure 创建 peer-pod ConfigMap

流程

  1. 从 Web 控制台中的 Administrator 视角,导航到 Operators Installed Operators
  2. 从 Operator 列表中选择 OpenShift 沙盒容器 Operator。
  3. 单击右上角的 Import 图标 (+)。
  4. Import YAML 窗口中,粘贴以下 YAML 清单:

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: peer-pods-cm
      namespace: openshift-sandboxed-containers-operator
    data:
      CLOUD_PROVIDER: "azure"
      VXLAN_PORT: "9000"
      AZURE_INSTANCE_SIZE: "Standard_B2als_v2" 1
      AZURE_INSTANCE_SIZES: "Standard_B2als_v2,Standard_D2as_v5,Standard_D4as_v5,Standard_D2ads_v5" 2
      AZURE_SUBNET_ID: "<enter value>" 3
      AZURE_NSG_ID: "<enter value>" 4
      PROXY_TIMEOUT: "5m"
      DISABLECVM: "true"
    1
    定义工作负载中没有定义实例时使用的默认实例大小。
    2
    列出创建 pod 时可以指定的所有实例大小。这可让您为需要较少的内存和 CPU 或更大实例的工作负载定义较小的实例。
    3
    输入您检索到的 AZURE_SUBNET_ID 值。
    4
    输入您检索到的 AZURE_NSG_ID 值。
  5. Create

ConfigMap 的对象已创建。您可以看到它在 Workloads ConfigMaps 下列出。

注意

如果更新 peer pod 配置映射,您必须重启 peerpodconfig-ctrl-caa-daemon daemonset 以应用更改。

更新配置映射后,点 Save 应用更改。然后运行以下命令来重启 cloud-api-adaptor pod:

$ oc set env ds/peerpodconfig-ctrl-caa-daemon -n openshift-sandboxed-containers-operator REBOOT="$(date)"

请记住,重启 daemonset 会重新创建对等 pod,它不会更新现有的 pod。

3.2.3.3. 使用 Web 控制台为 Azure 创建 SSH 密钥 secret 对象

您必须创建一个 SSH 密钥 secret 对象才能使用 Azure 的对等 pod。如果您还没有创建对象的 SSH 密钥,则必须使用 CLI 生成对象。更多信息,请参阅

流程

  1. 从 web 控制台中的 Administrator 视角,进入到 Workloads Secrets
  2. 在左侧的 Secrets 窗口中,验证您是否位于 openshift-sandboxed-containers-operator 项目中。
  3. Create,从列表中选择 Key/value secret
  4. Secret name 字段中,输入 ssh-key-secret
  5. Key 字段中,输入 id_rsa.pub
  6. Value 字段中,粘贴您的公共 SSH 密钥。
  7. Create

SSH 密钥 secret 对象已创建。您可以看到它列在 Workloads Secrets 下。

创建 KataConfig CR 后,您可以使用 Azure 上的对等 pod 运行 OpenShift 沙盒容器。

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

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

重要

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

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

先决条件

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

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

流程

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

    • 名称 :输入 KataConfig 资源的名称。默认情况下,名称定义为 example-kataconfig
    • Labels (可选):输入任何相关的、识别到 KataConfig 资源的属性。每个标签代表一个键值对。
    • checkNodeEligibility (可选,不与对等 pod 相关的):选择此复选框以使用 Node Feature Discovery Operator (NFD)检测节点资格以作为 RuntimeClass 运行 kata。如需更多信息,请参阅"检查集群节点是否有资格运行 OpenShift 沙盒容器"。
    • enablePeerPods (对于对等 pod):选择此复选框来启用对等 pod,并在公有云环境中使用 OpenShift 沙盒容器。
    • KataConfigPoolSelector :默认情况下,kata-remote 在所有节点上作为 RuntimeClass 安装。如果要在所选节点上安装 kata-remote 作为 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-remote 作为 RuntimeClass 运行的节点检索的日志数据级别。如需更多信息,请参阅"收集 OpenShift 沙盒容器数据"。
  5. Create

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

注意

运行 CR 时,会创建虚拟机镜像。镜像创建通过云提供商完成,并且可以使用其他资源。

重要

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

验证

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

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

    status 字段具有 条件和 kataNodes 子字段。kataNodes 子字段是节点列表的集合,每个节点都列出 kata 安装的特定状态的节点。

    kataNodes 下的所有 worker 都被列为,且条件 InProgressFalse 时,它代表集群中安装 kata如需更多信息,请参阅"安装和卸载转换"。

3.2.5. 使用 Web 控制台在沙盒容器中部署对等 pod 的工作负载

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

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

您还可以通过向 YAML 文件添加注解,定义是否应该使用默认实例大小部署工作负载,或者键入之前在 ConfigMap 中定义的类型。实例大小或实例类型的使用取决于您的云供应商。如果您不想手动定义实例大小或类型,您必须添加注解来定义根据可用内存定义自动实例大小或类型的使用。

先决条件

  • 在集群中安装了 OpenShift Container Platform 4.15。
  • 您可以使用具有 cluster-admin 角色的用户访问集群。
  • 已安装 OpenShift 沙盒容器 Operator。
  • 您已创建了一个 secret 对象和对云供应商唯一的 peer-pod ConfigMap
  • 您已创建了 KataConfig 自定义资源 (CR)。

流程

  1. 从 web 控制台中的 Administrator 视角,展开 Workloads 并选择您要创建的工作负载类型。
  2. 在工作负载页面中,点击以创建工作负载。
  3. 在工作负载的 YAML 文件中,在列出容器的 spec 字段中,添加 runtimeClassName: kata-remote
  4. 在工作负载的 YAML 文件中,添加一个注解来定义是否使用默认实例大小或类型,或自动实例大小或类型。实例大小用于特定的云提供商,而实例类型则用于其他云提供商。

    • 对于特定实例大小类型,添加以下注解:

      io.katacontainers.config.hypervisor.machine_type: <instance type/instance size>

      定义工作负载应使用的实例大小或类型。在为对等 pod 创建 ConfigMap 时,预定义的这些默认大小或类型。从其中之一选择。

    • 对于自动实例大小或类型,添加以下注解:

      io.katacontainers.config.hypervisor.default_vcpus: <vcpus>
      io.katacontainers.config.hypervisor.default_memory: <memory>

      定义可供工作负载使用的内存量。工作负载将根据可用内存量在自动实例大小或类型上运行。

    Pod 对象示例

    apiVersion: v1
    kind: Pod
    metadata:
      name: hello-openshift
      labels:
        app: hello-openshift
      annotations:
        io.katacontainers.config.hypervisor.machine_type: Standard_DC4as_v5 1
    spec:
      runtimeClassName: kata-remote
      containers:
        - name: hello-openshift
          image: quay.io/openshift/origin-hello-openshift
          ports:
            - containerPort: 8888
          securityContext:
            privileged: false
            allowPrivilegeEscalation: false
            runAsNonRoot: true
            runAsUser: 1001
            capabilities:
              drop:
                - ALL
            seccompProfile:
              type: RuntimeDefault

    1
    本例使用之前定义的实例大小用于使用 Azure 的对等 pod。使用 AWS 的对等 pod 使用实例类型。
  5. 点击 Save

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

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.