运行Kubernetes的顶级最小容器操作系统

前言

自Linus Torvalds向社区发布Linux以来,Linux已经走了很长一段路。在该容器的使用期限到来并被完全接受之前,它已经服务于许多传奇性的冒险和利用。传统的Linux发行版捆绑有大量软件,使其成为出色的通用工具。在容器的概念被接受之前这不是问题。

传统Linux机顶盒中庞大的软件具有以下缺点:不断增长,扩展了安全威胁的范围,并扩展了认证新版本所需的测试矩阵。容器驱动的微服务需要更少的依赖关系,并使用最少的容器操作系统,从而易于大规模扩展应用程序。

本文提供了对最小容器操作系统的简单描述,该操作系统已显示了许多可能性。

1. CoreOS /容器Linux

容器Linux,称为CoreOS,是基于容器的Linux发行版业务的先驱。一种非常轻巧的Linux操作系统,专为集群部署而设计,可为最重要的应用程序提供自动化,安全性和可伸缩性。可以想象,该应用程序在容器中运行,并提供了开发人员友好的工具来部署软件。当然,CoreOS Container Linux是最新的容器操作系统,旨在以最小的操作开销大规模管理和运行。

内部CoreOS

改编自 CoreOS网站“ Container Linux签约只包含发行版边界上的基本要素。操作系统和基本用户实用程序被最小化并作为集成单元交付。所有其他应用程序ContainerOS用户具有运行应用程序的一致而安全的基础,CoreOS工程师可以在容器中运行,管理,更新和分发。我们将继续为操作系统提供补丁,保持容器引擎的最新状态,并确保容器安全运行。”

CoreOS功能

  • Container Linux几乎可以在任何平台上运行,包括物理,虚拟和私有/公共云。
  • 所有应用程序都独立于核心操作系统,依赖项在容器内运行

2.光子操作系统

Photon OS概述

VMWare创建并称为针对云计算平台,VMware vSphere的部署,云原生应用程序而磨练的极简主义Linux操作系统 光子操作系统

运行Kubernetes的顶级最小容器操作系统

作为Linux容器主机,Photon OS已针对vSphere和云计算平台(例如Amazon Elastic Compute和Google Compute Engine)进行了优化。它适用于最常见的容器格式,例如Docker,Rocket和Garden。此外,Photon OS包括与yum兼容的基于软件包的生命周期管理系统。 tdnf

Photon OS的一大功能是可以与开发工具和环境(例如VMware Fusion和VMware Workstation)一起使用。在此过程中,您可以将基于容器的应用程序无缝地从开发转移到生产。

光子OS功能

Photon OS最突出的功能是:

我啊Photon OS的占地面积很小,无需花费任何时间即可启动并运行。

这使得Photon OS对云计算和云应用程序进行了高度优化。

ii。使用systemd管理服务。

通过使用systemd,Photon OS采用了最新的Linux标准来管理系统服务。 Photon OS引导用户空间并与systemd同时启动服务。 systemctl实用程序控制Photon OS上的服务。例如,不要运行/etc/init.d/ssh脚本来停止和启动基于init.d的Linux系统上的OpenSSH服务器,而是运行以下systemctl命令 光子操作系统

  • systemctl停止sshd
  • systemctl启动sshd

使用兼容yum的开源软件包管理器管理软件包。 tdnf 对于微小的DNF。

Tdnf在保持yum强大的程序包管理功能的同时,使操作系统尽可能小。在Photon OS上,tdnf是用于安装新软件包的默认软件包管理器。 DNF程序包管理器的C实现。

3. RancherOS

如果您想轻松运行Docker,请考虑使用RancherOS。这是使用Docker在生产环境中运行工作负载的最小,最简单的方法。未来似乎在容器之路,因此Rancher团队已将所有RancherOS进程作为Docker管理的容器运行。该体系结构与Linux发行版中的体系结构完全不同,因为即使系统服务(例如udev和syslog)也作为容器运行。

运行Kubernetes的顶级最小容器操作系统

RancherOS比大多数传统操作系统小得多,因为它仅包含运行Docker所需的服务。删除不必要的库和服务还可以减少安全补丁和其他维护要求。这是因为使用Docker时,用户通常会将所有必需的库打包在一个容器中。

RancherOS功能

我啊RancherOS中的所有内容都是一个容器

为了确保RancherOS在技术上是合理的,已对所有元素和关联的容器进行了审核并实现了功能。例如,RancherOS设计为运行最新版本的Docker,因此用户可以利用最新的Docker功能和错误修复。如您所见,不必担心在终端中进行升级或更新。专注于您的核心业务。

ii。 RancherOS和Flash一样快

关于启动时间,没有什么比极简主义的Linux发行版可比的了。 RancherOS非常喜欢此联盟启动。此外,启动Docker容器与启动任何其他进程一样快。对于使用微服务的组织,这些功能是理想的。

运行RancherOS需要很少的硬件资源。这消除了项目上硬件成本的限制。

RancherOS的工作方式

您可能想知道,专门在容器上运行的OS在后台如何工作。 Rancher通过启动两个Docker实例实现了这一目标。调用一个系统Docker实例,该实例代表系统上的第一个进程,就像普通Linux发行版中的init一样。所有其他系统服务,例如终端,系统日志,ntpd,都在Docker容器中运行。系统Docker用于替换传统的初始化系统(例如systemd)并调用其他系统服务。

运行Kubernetes的顶级最小容器操作系统资料来源:RancherOS网站

那么,如何确保用户空间中运行的所有容器都不会被系统容器删除? RancherOS很好地处理了这一问题。系统Docker运行和管理一个称为Docker的特殊容器。 Docker是另一个管理所有容器的Docker守护程序。从控制台作为用户启动的容器在此Docker内部运行。这可确保普通用户命令不会影响与System Docker容器(牧场主)。

4.红帽CoreOS(RHCOS)

红帽企业Linux CoreOS是由创建红帽企业Linux Atomic Host和CoreOS Container Linux的同一开发团队创建的。它的主要目标是将红帽企业Linux(RHEL)的最高质量标准与Container Linux的自动远程升级功能集成在一起。

运行Kubernetes的顶级最小容器操作系统

RHCOS的主要功能

我啊底层操作系统主要由RHEL组件组成。

这仅意味着RHCOS严格支持RHEL中实施的相同质量,安全性和控制措施。

ii。 RHCOS使用rpm-ostree系统进行了事务升级。

更新是通过容器映像传递的,并且是OpenShift更新过程的一部分。打开包装后,将容器映像提取,提取并写入磁盘。之后,将更改引导加载程序并使用新版本进行引导。

iii。 RHCOS使用Podman CLI执行诸如构建容器,复制和其他管理之类的任务。

这将用podman CLI中找到的兼容容器工具集替换Docker CLI工具。

iv。 RHCOS合并了CRI-O容器引擎而不是Docker容器引擎。

与提供更大功能集的容器引擎相比,CRI-O提供了与各种Kubernetes版本的特定兼容性,从而提供了更小的占地面积和更少的攻击面。

5. Fedora CoreOS

读自 Fedora文档Fedora CoreOS是一个独立的,优化的,无Kubernetes的,出色的,自动更新的,最小的,整体的,以容器为中心的,针对集群设计的操作系统。它旨在结合CoreOS Container Linux和Fedora Atomic Host的优势,将Container Linux Ignition等技术与Project Atomic rpm-ostree和SELinux增强功能集成在一起。目标是提供最佳的容器主机,以安全,大规模地运行容器化的工作负载。

运行Kubernetes的顶级最小容器操作系统

不需要安装配置即可启动Fedora CoreOS(FCOS)。所有FCOS系统均以通用磁盘映像开头。对于每种部署机制(云虚拟机,本地虚拟机,裸机),您可以在首次启动时指定配置。 FCOS读取配置文件并将其应用于Ignition。对于云部署,Ignition通过云用户数据机制收集配置。对于裸机,Ignition将在安装过程中插入配置。

如果要开始使用,请检查以下内容:

如何在KVM / OpenStack上运行Fedora CoreOS

结论

随着微服务的不断发展,与这些行业领导者的基础已经非常完善,因此未来的应用程序和工作负载将比今天拥有更好的体验。容器带来的好处不能过分强调。

微服务下的可移植性,功能和易于部署是目前缺乏的效率。最小的容器操作系统将是Kubernetes集群超大规模扩展的主要构建模块,因为该结构可与Kubernetes很好地协同工作。

另请参阅:

如果您对Kubernetes相关材料感兴趣,请不要错过以下指南:

使用Rancher RKE安装生产Kubernetes集群

使用KVM在CentOS 8 / CentOS 7上安装Minikube Kubernetes

使用Ansible和Calico CNI在CentOS 7 / CentOS 8上部署Kubernetes集群

将新的Kubernetes工作者节点加入现有集群

如何将指标服务器部署到Kubernetes集群

在Kubernetes集群上安装和使用Helm 3

如何使用Heketi和GlusterFS配置Kubernetes动态卷配置

如何使用K3在5分钟内部署轻量级Kubernetes集群

Sidebar