微软在Azure Kubernetes Service (AKS)中发布Pod沙箱支持预览
微软在其Azure Kubernetes Service (AKS)中发布了Pod沙箱功能的预览版。该功能通过使用Kata Containers提供基于管理程序的隔离,从而在容器应用程序与共享内核和计算资源之间建立隔离边界。目前,该功能在所有Azure区域中适用于部分Azure虚拟机(VM)大小。
Kata Containers提供增强的隔离
Kata Containers是一个开源的虚拟机,它作为容器运行,旨在通过硬件虚拟化技术提供增强的工作负载隔离。由于Kata Containers符合Open Container Initiative (OCI)标准,因此它与Docker和Kubernetes等框架兼容。
Mariner AKS容器主机
Kata Containers在AKS上运行于Azure管理程序,并使用Mariner AKS容器主机(MACH)。每个Kata Pod在其嵌套的Kata客户虚拟机中拥有自己的内核。通过这种方法,可以在单个客户虚拟机中堆叠多个Kata容器,同时在父虚拟机中运行其他容器。
Mariner Linux发行版
Mariner是微软内部优化的Linux发行版,专为在Azure上运行而设计。Mariner镜像设计为最小化,不包含图形组件或窗口管理器。该镜像于2022年秋季作为预览版发布。
部署流程
使用Pod沙箱的部署流程与传统containerd流程相似,但有一些例外。需要在Pod规范中添加runtimeClassName kata-mshv-vm-isolation,这将创建一个虚拟机作为Pod沙箱来托管容器。默认情况下,该虚拟机具有2 GB内存和一个CPU核心,可以通过容器资源清单进行调整。
创建集群命令
以下命令将创建一个名为myAKSCluster的集群,并在myResourceGroup中创建一个节点:
az aks create --name myAKSCluster --resource-group myResourceGroup --os-sku mariner --workload-runtime KataMshvVmIsolation --node-vm-size Standard_D4s_v3 --node-count 1预览版限制
当前预览版存在一些限制,包括不支持Microsoft Defender和Container Insights,以及不支持Container Storage Interface驱动程序和Secrets Store CSI驱动程序。
多租户支持
尽管该功能允许在单个租户AKS中托管混合工作负载,但仍建议遵循多租户最佳实践。Michael Withrow,微软的高级产品经理,表示虽然这更接近多租户,但主要是为了从共享内核的角度防止攻击。
总结
Pod沙箱功能通过Kata Containers和Mariner AKS容器主机提供了增强的隔离,目前处于预览阶段,存在一些限制。用户可以通过指定特定的运行时和操作系统SKU来启用该功能,并应遵循多租户最佳实践。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。