第 3 章 在 AWS 上部署 OpenShift 沙盒容器
您可以使用 OpenShift Container Platform Web 控制台或命令行界面(CLI)在 AWS Cloud Computing Services 上部署 OpenShift 沙盒容器。
OpenShift 沙盒容器部署对等 pod。对等 pod 设计对嵌套虚拟化的需求。如需更多信息,请参阅 对等 pod。
集群要求
- 您已在要安装 OpenShift 沙盒容器 Operator 的集群中安装 Red Hat OpenShift Container Platform 4.14 或更高版本。
- 您的集群至少有一个 worker 节点。
3.1. 对等 pod 资源要求
您必须确保集群有足够的资源。
对等 pod 虚拟机(VM)需要位于两个位置的资源:
-
worker 节点。worker 节点存储元数据、Kata shim 资源(
containerd-shim-kata-v2
)、remote-hypervisor 资源(cloud-api-adaptor
),以及 worker 节点和对等 pod 虚拟机之间的隧道设置。 - 云实例。这是在云中运行的实际对等 pod 虚拟机。
Kubernetes worker 节点中使用的 CPU 和内存资源由 RuntimeClass (kata-remote
)定义中包含的 pod 开销 处理,用于创建对等 pod。
在云中运行的对等 pod 虚拟机总数定义为 Kubernetes 节点扩展资源。这个限制是每个节点,并由 peerpodConfig
自定义资源(CR)中的 limit
属性设置。
在创建 kataConfig
CR 并启用对等 pod 时,名为 peerpodconfig-openshift
的 peerpodConfig
CR 会被创建,位于 openshift-sandboxed-containers-operator
命名空间中。
以下 peerpodConfig
CR 示例显示默认的 spec
值:
apiVersion: confidentialcontainers.org/v1alpha1
kind: PeerPodConfig
metadata:
name: peerpodconfig-openshift
namespace: openshift-sandboxed-containers-operator
spec:
cloudSecretName: peer-pods-secret
configMapName: peer-pods-cm
limit: "10" 1
nodeSelector:
node-role.kubernetes.io/kata-oc: ""
- 1
- 默认限制为每个节点 10 个虚拟机。
扩展资源名为 kata.peerpods.io/vm
,并允许 Kubernetes 调度程序处理容量跟踪和核算。
在安装 OpenShift 沙盒容器 Operator 后,您可以根据环境要求编辑每个节点的限制。
变异 Webhook 将扩展的资源 kata.peerpods.io/vm
添加到 pod 规格中。如果存在,它还会从 pod 规格中删除任何特定于资源的条目。这可让 Kubernetes 调度程序考虑这些扩展资源,确保仅在资源可用时调度对等 pod。
变异 Webhook 修改 Kubernetes pod,如下所示:
-
变异 Webhook 会检查 pod 是否有预期的
RuntimeClassName
值,在TARGET_RUNTIME_CLASS
环境变量中指定。如果 pod 规格中的值与TARGET_RUNTIME_CLASS
的值不匹配,则 Webhook 会在不修改 pod 的情况下退出。 如果
RuntimeClassName
值匹配,webhook 会对 pod 规格进行以下更改:-
Webhook 从 pod 中所有容器和 init 容器的
resources
字段中删除每个资源规格。 -
Webhook 通过修改 pod 中第一个容器的 resources 字段,将扩展资源(
kata.peerpods.io/vm
)添加到 spec。Kubernetes 调度程序使用扩展资源kata.peerpods.io/vm
用于核算目的。
-
Webhook 从 pod 中所有容器和 init 容器的
变异 Webhook 排除 OpenShift Container Platform 中的特定系统命名空间。如果在这些系统命名空间中创建了对等 pod,则使用 Kubernetes 扩展资源的资源核算不起作用,除非 pod spec 包含扩展资源。
作为最佳实践,定义集群范围的策略,仅允许在特定命名空间中创建对等 pod。