Podman for DevOps by Alessandro Arrichiello (Review in Chinese)

在这篇文章里我要写我阅读了Podman for Devops之后产生的观点。 我希望此短评能帮助大家推理阅读它是否是一个好的想法。

这本书继续我的“学习现代电脑用法”的系列。 本系列中还介绍了关于PAM,SELinux、CMake、Networking、TCP/IP的书。 诚邀读者浏览我的网站。

1. 评论

1.1. Podman概念,入门介绍

Podman是一种操作系统层虚拟化工具。 其实,这里“虚拟化”是一个不恰当的名称。 容器技术基本上如下所述。 操作系统内核为所有的进程提供系统资源,比如:内存地图,行程间通讯,CPU内核数量,等等。 在普通的系统里,内核为每个进程提供正确的信息。 在容器里,操作系统内核有意提供被修正的信息,为了给进程造成独立操作系统的感觉。

换句话说,在使用虚拟机的时候,虚拟机为客户机操作系统提供一套完全虚构的硬件观点。 在容器里,所有的硬件资源都是一样的,但是内核观点是不同的。

Podman是一种调整内核观点的前端。 严格来说,这些终端并不是必要的。 Linux默认有几个更低层的工具,让管理员手动调整进程的资源分享。 但是使用低层工具设计一个虚拟环境需要消耗很大的工作量。 Podman的用户经验跟Docker很像。 Docker是普及容器技术最多的项目。 但是RedHat需要有自己的可控制的容器前端,所以创建了Podman。

1.2. 结构

这本书是由三个部分组成的:摘要和基本操作、创造新容器、podman和其它软件合作。

我不能说这本书很详细的描述Linux容器框架。 它描述比较高的层次,但是不介绍具体的命名空间结构。 可能是为了使用podman不需要非常详细的理解namespace,但是我预期这种书把基本信息应该介绍的更好。

1.3. 缺点

我猜,为了帮助读者判断这本书是否值得阅读,我应该强调缺点,因为毕竟易读性大部分凭借忍耐缺点而不是享受优点。

我最不喜欢的是:这本书很少讨论存储管理,尤其是虚拟文件系统——overlayfs/btrfs. 其实,所有的容器技术有两个重点:存储和网络。 这本书讨论默认的图形驱动(overlayfs),但是不讨论btrfs和zfs。

综合来说,这本书有点松散。 易读,容易理解,脑筋比较享受,但是如果问自己是不是会复述它的逻辑,不一定会回应“是”。

是少两章“base image”和“container registry”线性阅读这本书的时候可以忽略。

一章针对检修故障,虽然作者结案以的调试方法都比较平淡无奇。

1.4. 优点

但是另一方面,这本书容器创建的过程描述的比较好。

这本书为我介绍了我到目前没有接触过的领域:纯云计算。 这个范式是针对大互联网公司做分布式web服务的。 毕竟这本书的名称包括“For Devops”,但是我原来只见过大概相似“系统管理”的Devops。

我也比较喜欢它介绍POSIX Capabilites的概念。 尤其是,它建议我怎么通过capsh避免设置文件Capabilities。

我也喜欢这本书介绍容器和SELinux的互动。 我已经度过Vermeulen的关于SELinux的书,但是那时我感觉。 现在我能从另一个角度看同样的互动。

还有一个好处:这本书在每个高等章列出需要的知识。

我比较喜欢这本书不忽略podman和其它工具合作。 我已经提到了selinux,但是这本书也包含buildah,skopeo,quarkus,kubernetes和udica. 让读者看更宽的背景。

2. 结论

总体来说,这本书更好使用为参考书,而不是为介绍。 我大概会给它70%的分数。