Kata Containers 助力 Amazon Web Services 增强 Kubernetes 工作负载隔离和安全性

深入理解 Kata Containers 本文将详细介绍 Kata Containers 的定义、架构、工作原理、应用场景、常见命令以及实验操作,帮助读者全面掌握这一创新的容器技术。通过 Kata Containers,用户可以在保持容器轻量级和灵活性的同时,提升安全性和隔离性,适用于多种复杂的应用场景。Kata Containers 是一种开源的容器运行时,结合了轻量级虚拟机(VM)和容器技术的优点。Kata Containers 将每个容器运行在一个独立的虚拟机中,通过这种方式,在保持性能的前提下,提供了更高的安全性和隔离性。 阅读详情

作者:Mirash Gjolaj 和 Re Alvarez-Parmar

近年来,容器已成为部署和管理应用程序的主要方法。容器的广泛采用归因于众多优势,例如隔离、高效的硬件可用性、可扩展性和可移植性。在资源隔离对系统安全至关重要的情况下,许多用户被迫依赖虚拟机 (VM) 来减轻受感染容器对主机或共享主机等其他容器的影响。

在最近的一次用户互动中,我们遇到了一个用例,团队需要保证其容器的防篡改特性。具体来说,他们需要编译代码并使用高度安全的密钥对其进行加密签名。在构建过程中,必须防止未经授权访问此密钥,确保在同一节点上运行的其他容器无法破坏或提取它。这一严格的安全要求使他们无法使用容器在 Kubernetes 中执行构建任务。

Kata Containers

Kata Containers 是一个开源项目,它提供了一个安全的容器运行时,将容器的轻量级特性与虚拟机的安全优势相结合。它使用硬件虚拟化技术作为第二层防御,提供更强大的工作负载隔离。在 Kata Containers 中,每个容器都使用不同的客户操作系统进行有效启动,而传统容器则在工作负载之间共享 Linux 内核,并通过使用命名空间和控制组 (cgroups) 实现容器隔离。虽然传统容器非常适合许多工作负载,但在需要更强的隔离和安全性时,它们就显得力不从心了。

Kata Containers 在精简的 OCI 兼容虚拟机中运行容器,以在共享主机的容器之间提供严格隔离。

62435e663c75c720f09b93c525ba0a03.png

Kata Containers 支持 AMD64 和 ARM 等主要架构。它还支持多种虚拟机管理程序,例如 Cloud-Hypervisor 和 Firecracker(一种由 AWS 构建的虚拟机管理程序,由 AWS Lambda 使用并与 containerd 项目集成)。

Kata Containers 通过使用 Kubernetes 编排系统为最终用户提供众所周知的界面,同时提供自定义运行时来运行使用基于 Linux 内核的虚拟机 (KVM) 提供强大工作负载隔离和安全性的特定虚拟机管理程序软件,从而抽象出编排工作负载的复杂性。

2c1c848c5f3610df5b8bc36a8edb64c2.png

Kata Containers 允许您运行与行业标准工具(例如 OCI 容器格式和 Kubernetes CRI 接口)集成的容器。它使用所选的虚拟机管理程序部署您的容器,从而创建一个 VM 来托管 Kata Containers 代理 (kata-agent) 和容器环境中的工作负载。每个 VM 都托管一个 kata-agent,充当管理容器和在这些容器中运行的工作负载的主管。VM 具有单独的客户内核,该内核针对启动时间和最小内存占用进行了高度优化,仅提供容器工作负载所需的服务,该内核基于最新的 Linux 长期支持 (LTS) 内核版本。您可以在其文档页面中找到有关 Kata Containers 架构的详细信息。

通过采用 Kata Containers,用户可以使用 Kubernetes 编排其构建作业,而对其持续集成 (CI) 系统进行最少的配置更改。该实现确保其 Pod 是隔离的,从而提供针对容器突破的强大保护,同时保持容器化工作负载的灵活性和效率。

在 AWS 上运行 Kata Containers

在本文的下一部分中,我们将演示如何使用 Amazon Elastic Kubernetes Service (EKS) 在 AWS 上设置和运行 Kata Containers。在开始之前,请注意,建议从部署在与您的 EKS 集群所在的同一 Amazon Virtual Private Cloud (VPC) 中的堡垒主机运行以下说明。

我们使用 Amazon EKS 运行一个功能齐全的 Kubernetes 集群,该集群使用 Amazon Elastic Compute Cloud (EC2) 裸机实例作为工作节点,以允许生成 KVM。事实上,标准 EC2 实例不允许嵌套虚拟化,因此需要使用裸机。

先决条件

需要满足以下先决条件:

l运行 EKS 集群的 Amazon VPC

l用于远程访问 Amazon VPC 的 Bastion Host

l具有本文档中所述最低限度策略的 AWS 身份和访问管理 (IAM) 角色,与 Bastion Host 关联

l注意:查看上一个文档中描述的策略以授予创建集群和节点组的权限

lAWS 命令行界面 (AWS CLI) v2 – 安装指南

leksctl – 安装指南

lkubectl – 安装指南 (v1.29.0)

配置 EKS 集群

环境准备就绪并可供使用后,您需要通过安全 Shell (SSH) 进入 Bastion Host 执行以下命令(我们建议使用 AWS Systems Manager 启动新会话):

eksctl create cluster \

--name EKS-Kata \

--region ap-southeast-1 \

--version 1.29 \

--vpc-private-subnets subnet-a,subnet-b \

--without-nodegroup

您必须更新此命令以更改要部署集群的子网或 AWS 区域。为了便于理解,我们使用 Kubernetes 版本 1.29,您可以更新该版本以匹配要部署的版本。

此命令创建一个 AWS CloudFormation 堆栈并部署一个新的 EKS 集群。您需要等待几分钟才能激活控制平面,然后才能将其用于其他配置。

配置 EKS 节点

集群正确部署并创建后,我们可以继续添加一个新节点组,其中包含运行工作负载所需的实例。在本练习中,我们使用 i3.metal 实例,但您可以使用任何适合您用例的 metal 实例。

创建 metal-node-group.yaml,内容如下:

cat <<EOF > metal-node-group.yaml

---

apiVersion: eksctl.io/v1alpha5

kind: ClusterConfig

metadata:

name: EKS-Kata

region: ap-southeast-1

managedNodeGroups:

- name: metal-instances

instanceType: i3.metal

amiFamily: Ubuntu2004

requiredCapacity: 1

minSize: 1

maxSize: 1

volumeSize: 150

volumeType: gp3

volumeEncrypted: true

privateNetworking: true

ssh:

enableSsm: true

subnets: ["subnet-a", "subnet-b"]

iam:

withAddonPolicies:

cloudWatch: true

EOF

请注意,在创建此文件之前,您必须更新子网以使用 VPC 中的子网。然后使用以下命令创建节点组:

eksctl create nodegroup -f metal-node-group.yaml

与 create cluster 命令类似,create nodegroup 命令会创建一个新的 CloudFormation 模板,该模板将在几分钟内部署具有所需容量的节点组。

部署 Kata Containers

Kata Deploy 是在 Kubernetes 集群中部署 Kata Containers的更快方法。虽然它是大多数情况下建议的部署方法,但请注意,它提供了一个 Dockerfile,其中包含运行 Kata Containers所需的二进制文件和工件(包括虚拟机管理程序二进制文件)。如果您需要所选虚拟机管理程序或客户机内核映像的自定义版本,我们建议您按照开发人员指南构建自己的二进制文件和基础映像。

从 Bastion Host,我们现在可以使用 Kata Deploy 将 Kata Containers 部署到我们的集群中:

kubectl apply -f https://raw.githubusercontent.com/kata-containers/kata-containers/main/tools/packaging/kata-deploy/kata-rbac/base/kata-rbac.yaml

kubectl apply -f https://raw.githubusercontent.com/kata-containers/kata-containers/main/tools/packaging/kata-deploy/kata-deploy/base/kata-deploy.yaml

然后等待部署正确完成:

kubectl -n kube-system wait --timeout=10m --for=condition=Ready -l name=kata-deploy pod

运行以下 kubectl 命令以应用 Kata Runtime 类:

kubectl apply -f https://raw.githubusercontent.com/kata-containers/kata-containers/main/tools/packaging/kata-deploy/runtimeclasses/kata-runtimeClasses.yaml

运行时类允许您快速创建使用特定虚拟机管理程序运行的 pod。这些是带有注释的预配置类,允许在支持 Kata Containers 运行时的集群节点中部署我们的 pod。Kata Containers 提供多个运行时类来支持 Kata Deploy 部署的虚拟机管理程序。

以下是为 Firecracker 定义的运行时类的示例:

kind:RuntimeClass

apiVersion:node.k8s.io/v1

metadata:

name:kata-fc

handler:kata-fc

overhead:

podFixed:

memory:“130Mi”

cpu:“250m”

scheduling:

nodeSelector:

katacontainers.io/kata-runtime:“true”

部署过程还会自动更新 containerd 配置,以添加由 Kata 提供的运行时类,该类配置为使用自定义运行时 shim 运行。

配置 Firecracker

Firecracker 是一种开源虚拟化技术,专门用于创建和管理安全的多租户容器和基于功能的服务。Firecracker 使您能够在轻量级虚拟机(称为 microVM)中部署工作负载,与传统虚拟机相比,microVM 提供了增强的安全性和工作负载隔离,同时提高了容器的速度和资源效率。Firecracker 是在 AWS 开发的,旨在改善 AWS Lambda 等服务的用户体验。

由于 Firecracker 的虚拟机监视器 (VMM) 不支持 microVM 和主机之间的文件系统级共享,因此需要配置一个快照程序,该快照程序将创建快照作为文件系统映像,这些映像可以作为设备暴露给 Firecracker microVM。containerd 使用快照程序来存储映像和容器数据。

在本节中,我们将了解如何为 Firecracker 配置 devmapper 快照程序。您需要登录到前面步骤中已配置的节点(推荐使用 Systems Manager 方法)。

验证 devmapper 插件是否尚未配置:

sudo ctr plugins ls | grep devmapper

如果此命令的输出是

io.containerd.snapshotter.v1 devmapper linux/amd64 error

那么您必须创建您的 devmapper 快照程序。将以下内容复制到 acreate.sh 脚本文件中:

#!/bin/bash

set -ex

DATA_DIR=/var/lib/containerd/io.containerd.snapshotter.v1.devmapper

POOL_NAME=devpool

mkdir -p ${DATA_DIR}

# 创建数据文件

sudo touch "${DATA_DIR}/data"

sudo truncate -s 100G "${DATA_DIR}/data"

# 创建元数据文件

sudo touch "${DATA_DIR}/meta"

sudo truncate -s 40G "${DATA_DIR}/meta"

# 分配循环设备

DATA_DEV=$(sudo losetup --find --show "${DATA_DIR}/data")

META_DEV=$(sudo losetup --find --show "${DATA_DIR}/meta")

# 定义精简池参数。

# 详情请参阅 https://www.kernel.org/doc/Documentation/device-mapper/thin-provisioning.txt。

SECTOR_SIZE=512

DATA_SIZE="$(sudo blockdev --getsize64 -q ${DATA_DEV})"

LENGTH_IN_SECTORS=$(bc <<< "${DATA_SIZE}/${SECTOR_SIZE}")

DATA_BLOCK_SIZE=128

LOW_WATER_MARK=32768

# 创建精简池设备

sudo dmsetup create "${POOL_NAME}" \

--table "0 ${LENGTH_IN_SECTORS} thin-pool ${META_DEV} ${DATA_DEV} ${DATA_BLOCK_SIZE} ${LOW_WATER_MARK}"

使其可执行并运行脚本:

sudo chmod +x create.sh && sudo ./create.sh

验证是否已成功创建:

sudo dmsetup ls

接下来,更新 containerd 配置/etc/containerd/config.toml 使用您喜欢的编辑器在文件末尾添加以下部分:

[plugins."io.containerd.snapshotter.v1.devmapper"]

pool_name = "devpool"

root_path = "/var/lib/containerd/io.containerd.snapshotter.v1.devmapper"

base_image_size = "40GB"

此外,您还应更新 kata-fc 运行时部分以将 devmapper 快照程序添加到配置文件中:

[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.kata-fc]

snapshotter = "devmapper" # 要添加到配置文件中的行

runtime_type = "io.containerd.kata-fc.v2"

完成这两个操作后,使用 sudo systemctl restart containerd 重新启动守护进程。

现在您可以验证插件是否正常运行:

sudo ctr plugins ls | grep devmapper

...

io.containerd.snapshotter.v1 devmapper linux/amd64 ok

上述脚本只需运行一次,即首次为 containerd 设置 devmapper 快照程序时。随后,确保每次重新启动时,精简池都从同一数据目录初始化。这是一个可用于此目的的简单脚本 (reload.sh):

#!/bin/bash

set -ex

DATA_DIR=/var/lib/containerd/io.containerd.snapshotter.v1.devmapper

POOL_NAME=devpool

# 分配循环设备

DATA_DEV=$(sudo losetup --find --show "${DATA_DIR}/data")

META_DEV=$(sudo losetup --find --show "${DATA_DIR}/meta")

# 定义精简池参数。

# 有关详细信息,请参阅 https://www.kernel.org/doc/Documentation/device-mapper/thin-provisioning.txt。

SECTOR_SIZE=512

DATA_SIZE="$(sudo blockdev --getsize64 -q ${DATA_DEV})"

LENGTH_IN_SECTORS=$(bc <<< "${DATA_SIZE}/${SECTOR_SIZE}")

DATA_BLOCK_SIZE=128

LOW_WATER_MARK=32768

# 创建精简池设备

sudo dmsetup create "${POOL_NAME}" \

--table "0 ${LENGTH_IN_SECTORS} 精简池 ${META_DEV} ${DATA_DEV} ${DATA_BLOCK_SIZE} ${LOW_WATER_MARK}"

然后我们让这个文件可执行,并创建一个在每次重启后重新初始化 devpool 的服务:

sudo chmod +x reload.sh && sudo nano /lib/systemd/system/devmapper_reload.service

添加以下内容:

[Unit]

Description=Devmapper reload script

[Service]

ExecStart=/path/to/script/reload.sh

[Install]

WantedBy=multi-user.target

记得更改 reload.sh 脚本的绝对路径,然后启用服务:

sudo systemctl daemon-reload

sudo systemctl enable devmapper_reload.service

sudo systemctl start devmapper_reload.service

在终止 EKS 节点上的会话之前,请注意您正在使用的内核版本。在下一节中,与客户操作系统版本进行比较很有用:

$ uname -a

Linux ip-192-168-118-78 5.15.0-1051-aws

部署工作负载

现在配置已完成,我们可以使用已创建的 Kata Containers 运行时类来运行工作负载。应从您的 Bastion Host 执行以下指令。

您可以通过运行以下命令 kubectl get Runtimeclass 来验证可用的运行时类。在本文中,我们仅展示在 Firecracker 或 Cloud Hypervisor 上运行的示例。但是,如果您想使用其他受支持的虚拟机管理程序,则只需相应地更新运行时类即可。

创建以下 redis-pod.yaml 文件:

cat <<EOF > redis-pod.yaml

---

apiVersion: v1

kind: Pod

metadata:

name: redis-pod

spec:

runtimeClassName: kata-fc

containers:

- name: redis-container

image: public.ecr.aws/docker/library/redis:latest

imagePullPolicy: IfNotPresent

ports:

- containerPort: 6379

EOF

然后使用 kubectl create -f redis-pod.yaml 将其部署到 Kubernetes 集群上。

要验证部署是否在其自己的 microVM 上运行,您可以运行以下命令来检查操作系统版本:

$ kubectl exec -it redis-pod -- bash -c "uname -a"

Linux redis-pod 6.1.38

microVM 应在与主机操作系统使用的内核版本不同的内核版本中运行。事实上,集群的节点计算机使用的是 5.15.0-1051-aws 内核版本,而客户操作系统使用的是 6.1.38。

您还可以更新 RuntimeClassName 属性以在不同的虚拟机管理程序下运行容器。例如,以下配置描述了如何更新它以使用 Cloud Hypervisor:

cat <<EOF > redis-pod.yaml

---

apiVersion: v1

kind: Pod

metadata:

name: redis-pod

spec:

runningClassName: kata-clh

containers:

- name: redis-container

image: public.ecr.aws/docker/library/redis:latest

imagePullPolicy: IfNotPresent

ports:

- containerPort: 6379

EOF

从节点机器,您还可以通过使用 ps 命令检查正在运行的进程来确认您的 pod 是否确实在正确的虚拟机管理程序上运行:

例如,对于 Firecracker:

$ ps -aux | grep firecracker

root 195793 4.7 0.0 2104568 131816 ? Sl 12:51 0:00 /firecracker --id 9dab6e65aa7be2e23b2b999b5694d4e1 --start-time-us 35935709841 --start-time-cpu-us 0 --parent-cpu-time-us 6709 --config-file /fcConfig.json

或者,对于 Cloud Hypervisor:

$ ps -aux | grep cloud-hypervisor

root 193537 3.0 0.0 2385448 154092 ? Sl 12:46 0:00 /opt/kata/bin/cloud-hypervisor --api-socket /run/vc/vm/f01ac1ae85101532c1cd93025ee25d408303ba9f74d39b119f2b327adbe16dab/clh-api.sock

每个虚拟机管理程序也有自己的配置文件,位于 /opt/kata/share/defaults/kata-containers/ 文件夹下,可以根据您的要求进行调整。containerd (/etc/containerd/config.toml) 配置指的是特定运行时类部分下的这些 Kata Containers 配置文件。在大多数情况下,默认配置足以让您运行工作负载,但请注意,如果需要特定配置(例如启用调试选项或更新要使用的最大 CPU 数量),则可以从这些配置文件中更新它并通过重新启动 containerd 服务来应用。

清理

完成实验后,您可以通过删除前面描述的 eksctl 命令创建的 CloudFormation 模板来清理 Kubernetes 集群和 EKS 节点。或者,您可以运行删除集群命令:

eksctl delete cluster \

--name EKS-Kata \

--region ap-southeast-1 \

--disable-nodegroup-eviction \

--wait

这会自动从您的 AWS 账户中删除代表节点组和 EKS 集群的 CloudFormation 堆栈。

结论

在这篇文章中,我们详细介绍了使用 Amazon EC2 裸机实例和 Kata Containers在 Amazon EKS 上设置自管理 microVM 基础设施的过程。这种方法将容器编排系统的灵活性与 VM 提供的增强安全性和隔离性相结合。虽然此设置可能适用于小型测试或概念验证,但在将这些工作负载部署到生产中之前,进行彻底的评估、确定此设置是否适合生产用例以及进行成本效益分析至关重要。大规模操作虚拟机管理程序需要深入了解它们对整个堆栈的影响,从应用程序到 Linux 内核。通常透明处理的任务,例如 Amazon EC2 或操作系统中的运行状况检查和主机修补以及 Amazon EKS 中的 Kubernetes 修补,在裸机 EC2 实例上使用自管理节点组时成为用户责任。对于大多数用户,我们建议使用托管解决方案,例如 Amazon EC2、Amazon Elastic Container Service (ECS) 和 Amazon EKS,以实现更顺畅的操作和降低复杂性。

Kata Containers及相关vmm介绍 Kata Containers介绍 Kata Containers 是轻量级虚拟机的一种新颖实现,可无缝集成到容器生态系统中。 Kata Containers 与容器一样轻巧快速,并与容器管理层集成,同时还提供 VM 的安全优势。 Kata Containers 是两个现有开源项目的合并:Intel Clear Containers 和 Hyper runV。 新项目结合了两种技术的优点,共同愿景是重组虚拟化以适应容器原生应用程序,以提供容器的速度和 VM 的安全性。... 阅读详情

相关推荐

Kata Containers与docker 容器的关系与创新

Kata Containers 概念参考: 初识Kata Containers Kata Container介绍 Katacontainers 与 Docker 和 Kubernetes 的集成 背景 docker容器,性能高,不安全;VM虚拟机,安全性好,性能损耗大;Kata Container轻量级虚拟机的容器,即安全,性能也高。开源容器项目Kata Containers,旨在将虚拟机(VM)的安全优势与容器的速度和可管理性统一起来。 即解决Docker的安全问题。 Kata Container K

father_is_的博客 3688

【云原生】安全容器 Kata Containers

出于对传统容器安全性的担忧,Intel 在 2015 年启动了它们以虚拟机为基础的容器技术:Clear Container。Clear Container 依赖 Intel VT 的硬件虚拟化技术以及高度定制的 QEMU-KVM(qemu-lite)来提供高性能的基于虚拟机的容器。在 2017 年,Clear container 项目加入了 Hyper RunV,这是一个基于 hypervisor 的 OCI 运行时,从而启动了 Kata 容器项目。

include的博客 3732

Kata Containers创始人:安全容器导论

从2015年5月初开始创业开发 HyperContainer (runV) 到现在,也快五年了,在这个时候还来写一篇什么是安全容器,显得略有尴尬。不过,也正是经过这五年,越来越多到人开始感到,我需要它却说不清它,这个时候来给大家重新解释 “安全容器” 也正是时候。

二狗的博客 671

超融合产品集成 Kata 虚拟化容器技术的方案演进 | 龙蜥技术

龙蜥大讲堂78期回顾文来啦~完整直播回放已上线至龙蜥视频号【龙蜥社区小龙】,浪潮数据超融合云原生工程师王永超带大家了解 Kata 虚拟化容器技术,及超融合产品为集成 Kata 容器而进行技术方案演进历程,也分享了超融合 Kata 容器技术设计与应用。欢迎观看!

weixin_60347558的博客 1097

容器安全运行时:Kata Containers实践

随着容器技术在云计算、微服务架构中的广泛应用,容器安全问题成为企业上云的核心关注点。传统容器运行时(如Docker、CRI-O)基于操作系统级虚拟化,存在共享内核带来的安全风险。本文旨在通过Kata Containers这一前沿技术,探讨如何在保持容器易用性的同时,实现接近虚拟机的安全隔离级别,为企业级容器部署提供安全增强方案。背景介绍:明确容器安全挑战及Kata Containers的技术定位核心概念与联系:解析Kata技术架构与关键组件核心算法原理 & 具体操作步骤:基于OCI标准的运行时实现逻辑。

AI云原生与云计算技术学院 1114

UVM环境复位--stop_sequences()

在UVM验证环境中, stop_sequences是一个用于强制终止所有正在运行的 Sequence 的方法,通常用于动态控制激励生成流程。1.通过uvm_config_db传递事件和严格的同步机制,此方案符适用于复杂复位场景和动态测试控制。组件耦合:Driver 和 Sequence 不再直接依赖env,通过标准接口通信。竞争条件:确保 Driver 完成清理后再终止 Sequence。代码健壮性:使用非阻塞操作和事件监听,避免死锁。

qq_42779035的博客 3014

Kubernetes【容器运行时】Kata Containers 与 gVisor

文章目录1. 容器发展2. KataContainers原理3. gVisor原理4. 对比 1. 容器发展 使用虚拟化技术来做一个像 Docker 一样的容器项目,并不是一个新鲜的主意。早在 Docker 项目发布之后,Google 公司就开源了一个实验性的项目,叫作 novm。这,可以算是试图使用常规的虚拟化技术来运行 Docker 镜像的第一次尝试。不过,novm 在开源后不久,就被放弃了,这对于 Google 公司来说或许不算是什么新鲜事,但是 novm 的昙花一现,还是激发出了很多内核开发者的灵

爱死亡机器人 2539

AWVS安装与使用教程

Acunetix Web Vulnerability Scanner(简称AWVS)是一款知名的自动化网络漏洞扫描工具,它通过网络爬虫测试你的网站安全,检测流行安全漏洞。它可以扫描任何可通过Web浏览器访问的和遵循HTTP/HTTPS规则的Web站点和Web应用程序。适用于任何中小型和大型企业的内联网、外延网和面向客户、雇员、厂商和其它人员的Web网站。WVS可以通过检查SQL注入攻击漏洞、XSS跨站脚本攻击漏洞等漏洞来审核Web应用程序的安全性。

qq_59607911的博客 4098

KataContainers的限制:主机网络、主机目录、特权容器和镜像构建

A Kata Container utilizes a Virtual Machine (VM) to enhance security and isolation of container workloads. As a result, the system has a number of differences and limitations when compared with the default Docker* runtime, runc.

flynetcn的专栏 974

优快云余额充值前必读:这5个隐藏条款,90%的开发者都忽略了(附iOS内购避坑指南)

本文揭示了优快云余额充值中90%开发者忽略的5个隐藏条款,包括不可退款规则、iOS内购限制、账号安全责任等关键内容,特别提供了iOS内购避坑指南,帮助开发者避免资金损失和账号风险。

weixin_26765287的博客 147

库存预测新思路:AI架构师的图神经网络应用

用图神经网络(GNN)解决传统库存预测的“关联盲区”,让预测从“孤立商品”转向“商品网络”。传统库存预测的痛点分析;GNN的核心概念(图结构、消息传递);GNN在库存预测中的算法原理与代码实战;实际应用场景与未来趋势。背景:用超市老板的烦恼引出传统方法的问题;核心概念:用“商品朋友圈”比喻GNN的图结构和消息传递;算法原理:用数学公式和Mermaid流程图讲清楚GNN的工作流程;实战:用PyTorch Geometric写一个简单的库存预测模型;

AI Python 编程之道的博客 959

kata-container

Kata Container是一个开放源代码的容器,运行时可以构建无缝插入容器生态系统的轻量级虚拟机,致力于通过轻量级虚拟机机来构建安全的容器,这些虚拟机的运行方式和性能类似于容器,但是使用硬件虚拟化救赎作为第二程防御层,可以提供更强的工作负载隔离​ Kata Container 社区由 OpenStack Foundation(OSF) 领导,该基金会支持全球开放基础架构的开发和采用kata-container 和 runc是平级的。

qq_38129681的博客 841

MFC界面库BCGControlBar v32.0 - 对话框、仪表盘控件升级

亲爱的BCGSoft用户,我们非常高兴地宣布BCGControlBar Professional for MFC和BCGSuite for MFCv32.0正式发布!新版本支持Windows 11、增强功能区简化模式、改进控件外观等,以及其他新功能和改进。需要最新版的可以点击这里【BCG下载】 BCGControlBar Pro for MFC v32.0正式版下载 对话框和表单 1. 添加了一个新的全局标志globalData.m_bAutoPrepareComboListStyles:如果您希望.

需要界面开发、IDE工具研发中文教程资料的小伙伴,记得私信我~ 1147

什么是 Kata Containers?

如果 Kubernetes 是一位“调度员”,Kata Containers 就是它的新手下,可以像 Docker 一样执行 Kubernetes 的指令,同时提供更高的安全性。是一种结合了容器技术和虚拟机技术的轻量级运行时,旨在提供容器的速度和虚拟机的安全性。它将容器运行在一个隔离的虚拟机中,从而大幅提升安全性,同时保持容器的高效性。的目标是结合容器的效率和虚拟机的安全性,为用户提供一种高效且安全的容器运行时。它继承了这两个项目的特点,特别是 runV 的功能,提供了一种兼具安全和性能的容器运行方式。

pumpkin84514的博客 1936

闲鱼客户端三重动态签名机制解析:x-sign、x-mini-wua与x-umt

在移动客户端安全通信中,设备级动态签名已成为主流App防范自动化攻击的核心手段。其原理是将设备指纹、运行时行为与可信硬件标识深度融合,生成不可复用、不可跨端、不可静态伪造的请求凭证。这类机制超越传统Token或Session鉴权,具备强上下文绑定性与实时熵值校验能力,广泛应用于电商、社交及开放平台等高风险接口场景。技术价值体现在有效识别模拟器、无头浏览器与集群化爬虫,同时保障多端一致性与合规数据对接。本文聚焦闲鱼客户端实际落地的x-sign(带设备上下文的混合签名)、x-mini-wua(小程序行为水印)与

weixin_35732273的博客 495

你以为你懂 Java 反射?看了这篇源码分析,我发现我以前都错了

摘要:本文讲述了一次生产环境Metaspace内存溢出的故障排查经历。事故源于一个通用数据导出功能中频繁使用反射调用method.invoke(),触发了JVM的"膨胀机制":当同一Method对象调用超过15次时,JVM会动态生成GeneratedMethodAccessor类,导致Metaspace被撑爆。文章分析了问题根源在于循环中反复调用getMethods()创建新Method对象,并提出了三种解决方案:缓存Method对象、改用MapStruct/MethodHandle工具

BUG猿的博客 770

Kata Containers

综上所述,Kata Containers 提供了一种虚拟化容器的解决方案,可以提供更高的安全性和隔离性,同时保持与容器生态系统的兼容性。它适用于需要更强安全隔离或对性能有一定要求的场景。但也需要权衡资源消耗和启动时间等因素。

summer_fish的专栏 1220

Spring Boot集成ShardingSphere实现数据加密及数据脱敏 | Spring Cloud 48

利用ShardingSphere实现: - 数据加密 - 数据脱敏

gmHappy 1万+

干货|认识kata-containers

点击上方“中兴开发者社区”,关注我们每天读一篇一线开发者原创好文认识kata-containers 1、kata-containers是什么 2、在容器生态系统中的位置 3、包含的组件及其功能介绍 4、现状以及后续的计划 5、在Docker中的使用 本文主要让大家认识什么是kata-containers,它在容器生态系统中的位置,如何跟现有容 器系统进行集成。最后介绍如何在Docker中使用kat

中兴开发者社区 1万+

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

使用Kata Containers与containerd在Kubernetes中运行安全容器

在云原生环境中,容器安全性一直是企业关注的重点。Kata Containers作为一种创新的容器运行时解决方案,通过轻量级虚拟机技术为每个容器提供独立的内核级隔离,大大增强了容器的安全性。本文将详细介绍如何在Kubernetes集群中集成Kata Containers与containerd运行时,实现安全容器的部署与管理。 ## 环境准备 ### 系统要求 在开始配置前,请确保系统满足以下基

gitblog_00959的博客 635

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

探索未来容器技术:Kata Containers深度解析与推荐

探索未来容器技术:Kata Containers深度解析与推荐 项目介绍 Kata Containers,作为容器技术领域的一颗璀璨明星,它横空出世,融合了虚拟机的隔离性和容器的轻量级特性。该项目的官方文档仓库集中体现了其设计理念与实践指南,为开发者和运维人员提供了全面而详尽的操作指引。Kata Containers是由Open Container Initiative(OCI)标准驱动的,旨在...

gitblog_00003的博客 696

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

李福攀:Kata安全容器在蚂蚁集团的应用实践

2022年6月7日,在优快云云原生系列在线峰会第7期“安全技术峰会”上,蚂蚁集团高级技术专家李福攀分享了Kata安全容器及其在蚂蚁集团的落地实践。

m0_46700908的博客 2389

【katacontainer基础知识】kata-container介绍与原理

WHY ? 弥补了传统容器技术安全性的缺点,Kata Containers通过使用硬件虚拟化来达到容器隔离的目的。每一个container/pod 都是基于一个独立的kernel实例来作为一个轻量级的虚拟机。自从每一个container/pod运行与独立的虚拟机上,他们不再从宿主机内核上获取相应所有的权限。 WHAT ? kata container...

zhonglinzhang 2万+

Kubernetes 安全容器技术 kata gvisor

本文将主要分享以下五方面的内容: 缘起:安全容器的命名 间接层:安全容器的精髓 Kata Containers:云原生化的虚拟化 gVisor:进程级虚拟化 安全容器:不止于安全 一、缘起:安全容器的命名 Phil Karlton 有一句名言:“计算机科学界只有两个真正的难题——缓存失效和命名。” 对我们容器圈而言,我相信「命名」绝对配得上这句话。这毫无疑问是一件让老开发者沉默、让新人落泪的事情。仅就系统软件而言,我们当今比较通行地称为「Linux 容器技术」这个概念,它曾经用过的名字还.

小楼一夜听春雨,深巷明朝卖杏花 1564
上一篇: SOFA Weekly|Koupleless 社区会议回顾、SOFABoot 新版本发布、SOFA 聊天室、本周推荐阅读...
下一篇: Virtio I/O 虚拟化(一):Split Virtqueue
SOFAStack
博客等级 码龄7年 747粉丝 389原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值