PaaS系统/容器gVisor、Gimbal、kaniko、Titus介绍

以下为你介绍的PaaS系统/容器都可用在Linux系统上:gVisor(新型沙箱容器运行时环境)、Gimbal(Kubernetes 和 OpenStack 流量负载均衡平台)、kaniko(在 Kubernetes 中构建容器镜像)、Titus(Netflix 容器管理系统)。

1、gVisor(新型沙箱容器运行时环境)

PaaS系统/容器gVisor、Gimbal、kaniko、Titus介绍

gVisor 是一款新型沙箱解决方案,其能够为容器提供安全的隔离措施,同时继续保持远优于虚拟机的轻量化特性。gVisor能够与Docker及Kubernetes实现集成,从而在生产环境中更轻松地建立起沙箱化容器系统。

gVisor能够在保证轻量化优势的同时,提供与虚拟机类似的隔离效果。gVisor的核心为一套运行非特权普通进程的内核,且支持大多数Linux系统调用。该内核使用Go编写,这主要是考虑到Go语言拥有良好的内存管理机制与类型安全性。与在虚拟机当中一样,gVisor沙箱中运行的应用程序也将获得自己的内核与一组虚拟设备——这一点与主机及其它沙箱方案有所区别。

gVisor通过在用户空间内拦截应用程序系统调用并充当访客内核,gVisor能够提供强大的隔离边界。而与需要一组固定资源的虚拟机不同,gVisor能够随时适应不断变化的资源条件,这一点更像是普通Linux进程。gVisor很像是一种超虚拟化操作系统,其与完整虚拟机相比拥有更灵活的资源利用方式与更低的固定成本,但这种灵活性的代价是其系统调用成本更高且应用程序兼容性略差。

gVisor运行时能够与Docker及Kubernetes实现无缝化集成,这一集成效果通过匹配OCI运行时API的runsc(即‘run Sandboxed Container’的缩写)实现。

runsc运行时可与Docker的默认容器运行时runc进行互换。其安装非常简单; 在安装完成后,只需要一个额外标记即可在Docker内运行沙箱化容器:

$ docker run --runtime=runsc hello-world

$ docker run --runtime=runsc -p 3306:3306 mysql

在Kubenetes当中,大多数资源隔离在pod层面实现,而这意味着pod能够天然充当gVisor的沙箱边界。Kubernetes社区目前正在对沙箱pod API进行标准化调整,但目前已经开放实验性支持供用户体验。

runsc运行时能够在Kubernetes集群当中通过cri-o或cri-containerd等项目运行沙箱化pod——此类项目负责将Kubelet中的消息转换为OCI运行时命令。

gVisor能够实现大部分Linux系统API(总计200项系统调用与计数),但仍有一部分无法支持。部分系统调用与参数目前尚无法使用,/proc与/sys文件系统中的某些特定部分同样如此。因此,还有少数应用程序不能在gVisor当中运行。但除此之外,包括Node.js、Java 8、MySQL、Jenkins、Apache、Redis以及MongoDB等在内的大多数应用程序皆可顺利运作。

下载地址:https://github.com/google/gvisor

2、Gimbal(Kubernetes 和 OpenStack 流量负载均衡平台)

PaaS系统/容器gVisor、Gimbal、kaniko、Titus介绍

Gimbal 是由 Heptio 和雅虎日本旗下子公司 Actapio 共同开发,旨在帮助企业对混合环境中的网络流量进行负载均衡,包括 Kubernetes 集群和 OpenStack 部署环境。它提供了一个可扩展的多团队和 API 驱动的入口层,能够将 Internet 流量路由到多个上游 Kubernetes 群集和传统基础架构技术(如 OpenStack )。

常见使用场景:

具有多个 Kubernetes 群集的团队想要通过群集管理入口流量。

拥有 Kubernetes 和 OpenStack 基础设施的团队想要一致的负载平衡层。

希望使其开发团队能够安全地自行管理其路由配置。

具有 bare metal 或 on-premises 基础架构的团队想拥有在云端般的负载平衡。

下载地址:https://github.com/heptio/gimbal

3、kaniko(在 Kubernetes 中构建容器镜像)

PaaS系统/容器gVisor、Gimbal、kaniko、Titus介绍

通常,标准 Dockerfile 的生成需要与 Docker 后台进程交互访问,也就是需要本机 root 权限。如果是在 Docker 后台进程无法暴露的场景下,生成容器镜像就变得很困难。

kaniko 是 Google 开源的一个工具,旨在帮助开发人员从容器或 Kubernetes 集群内的 Dockerfile 构建容器镜像。

工作原理:

kaniko 作为一个容器镜像运行,它接受三个参数:一个 Dockerfile,一个构建上下文以及将镜像推送到的注册表。它在执行程序镜像中提取基本镜像的文件系统。然后,在 Dockerfile 中执行任何命令,快照用户空间中的文件系统。Kaniko 在每个命令后都会将一层已更改的文件附加到基本镜像。最后,执行程序将新镜像推送到指定的注册表。

由于 Kaniko 在执行程序镜像的用户空间中完全执行了这些操作,因此它完全避免了在用户计算机上需要任何特权访问。

下载地址:https://github.com/GoogleContainerTools/kaniko

4、Titus(Netflix 容器管理系统)

PaaS系统/容器gVisor、Gimbal、kaniko、Titus介绍

Titus 是一个容器管理平台,提供可扩展和可靠的容器执行以及与 Amazon AWS 的云本地集成。Titus 由 Netflix 在内部构建,用于制作 Netflix 流媒体,推荐和内容系统。

生产准备好的平台。Titus 在 Netflix 的生产环境中运行,管理数千个 AWS EC2 实例并每天为批处理和服务工作负载启动数十万个容器。

云服务与 AWS 的集成。 Titus 与 AWS 服务集成,如 VPC 网络,IAM 和安全组概念,应用程序负载平衡和 EC2 容量管理。这些集成使许多云服务能够与容器无缝协作。

Netflix OSS 集成。Titus 与许多现有的 Netflix OSS 项目本身一起工作,其中包括 Spinnaker,Eureka,Archaius 和 Atlas 等。

Docker 本地容器执行。Titus 可以运行打包为 Docker 容器的图像,同时提供围绕容器执行的额外安全性和可靠性。

下载地址:https://netflix.github.io/titus/

注明

以上就是PaaS系统/容器gVisor、Gimbal、kaniko、Titus的介绍内容,这些PaaS系统/容器都能使用在Linux操作系统中。

栏目相关文章