zl程序教程

您现在的位置是:首页 >  工具

当前栏目

系统管理员的容器时代之殇

容器 时代 系统管理员
2023-09-27 14:21:46 时间

系统管理现在处于一个癫狂的时代,一片混乱。

我并不是抱怨老式系统管理员们,他们还是知道如何让系统工作起来,知道怎么更新系统和如何升级扩容。

这篇吐槽是关于容器、预构建虚拟机镜像的,它们真是令人难以置信的混乱,它们的脑子里面就根本没有“可信”和“升级”的概念。

系统管理员的容器时代之殇

举个 Hadoop 的例子,似乎就没有人知道如何从头构建一份 Hadoop,它那令人头昏眼花的依赖关系、版本需求和构建工具让人云山雾罩。所有这些“神奇”的工具仍然是通过传统的 make 命令构建的,每个工具都是它自己带的,彼此不兼容,你得按照没有复用意义的“当日路线图”来构建。因为没有人能从头构建,所以现在大家都从一些不定是哪个的网站去下载已经编译好的二进制,基本上没有任何认证和签名。

这是 NSA 和病毒们的天堂啊!不需要搞什么破解和漏洞挖掘,只需要弄个“APP”、虚拟机或 Docker 镜像,人们就会把这些恶意代码弄到他们的网络里面去。

Debian 的 Hadoop 维基页就是一个典型的例子,基本上,从 2010 年开始人们就已经放弃了从源代码构建一个 Debian 上可用的 Hadoop 包了。

要构建 Apache Bigtop,你首先需要安装 puppet3,然后用它从互联网上下载一些魔法般数据。以 sudo 的权限启动 puppet ,顺便给 NSA 开个后门(举个例子,它会下载和安装一个过期的预编译的 JDK——因为它认为你太笨了,不会安装 Java),然后期待它能顺利构建而不是抛出200行的毫无用处的报错跟踪。

我没有开玩笑,它会试着执行像下面这样的脚本:


/bin/bash -c "wget http://www.scala-lang.org/files/archive/scala-2.10.3.deb ; dpkg -x ./scala-2.10.3.deb /" 

注意,甚至这并没有正常的安装这个包,而只是将其解压缩到你的根目录下!下载时也没有检查任何签名、没有通过 SSL(脚本来自 Bigtop 的 puppet 清单)。

即便你的构建正常工作了,它也会通过 Maven 下载来自互联网的没有签名的二进制代码,并用这些来构建。

不再写一些干净的、模块化的架构,所有这些现在都牵扯在混乱的依赖里面。我上次看到, hadoop 的类路径已经有 100 多个 jar 了,现在?我打赌它肯定有 150 个了。那些 HBaseGiraphFlumeCrunchPigHiveMahoutSolrSparkElasticsearch 以及 Apache 家族的其它东东都是这样混乱。

所谓软件栈,现在的意思是“我也不知道我实际上用的是啥”。

Maven 、ivy 和 sbt 这些即用的工具其实就是让你的系统从互联网下载那些无签名的二进制数据并运行在你的计算机上。

再加上容器,哦天哪,更乱了。

是否想过给容器进行安全更新?

基本上,Docker 的思路就是下载一个未签名的二进制并运行它,然后期望它不要将任何后门放到你的公司网络里面去。

这就像是我在90年代时在 Windows 上下载的共享软件一样。什么时候会出现第一个带有 Ask 工具条的 Docker 镜像呢?第一个通过 Docker 镜像传播的互联网蠕虫呢?

回到前些年,Linux 发行版努力着提供一个安全的操作系统,带有签名的软件包、可信的网络、甚至还能完全的重新构建。

而现在呢?什么东西都已经 Windows 化了,到处是疯狂的“App”,你下载,你运行,根本不管是否安全,是否能升级到下个版本。因为你就是“过把瘾就死”!

更新:其实在 Docker 之前就有这样的作法了,Docker 只是一个新的 curl | sudo bash 而已。是的,这就是主流的、在你的数据中心下载并运行一个不可信软件的方法。这太糟糕了,真的。之前,系统管理员还在努力的防御安全漏洞,现在,他们自称 “devops”了,然后很 happy 地把这些东西弄到他们的网络里面了!


本文作者: wxy

来源:51CTO


当容器应用越发广泛,我们又该如何监测容器? 随着容器技术蓬勃发展与落地推行,越来越多企业的业务运行于容器中。作为主流部署方式之一,容器将团队的任务和关注点分割开,开发团队只需关注应用程序逻辑和依赖项,而运维团队只需关注部署和管理,无需再为特定软件版本和应用程序特定配置等应用程序细节而提心吊胆。这意味着开发团队和运维团队可以花费更少时间进行调试上线,将更多时间用于向最终用户交付新功能。容器使企业可以更加轻松的提高应用程序可移植性和操作弹性。据 CNCF 的调研报告显示,73% 受访者正在使用容器来提高生产敏捷性并加快创新速度。
共享容器——URLOS最新发布的一项超强功能 共享容器是指将多个服务(例如网站)放在同一个容器中运行,它们共享同一个运行环境。它区别于URLOS传统的独立容器部署方式,将多个网站放在一个容器中运行,有利于节省主机资源。
【DockerCon2017技术解读】使用Moby工具和Linuxkit定制容器系统 DockerCon2017的技术解读中,阿里巴巴技术专家王炳燊为大家解读了在DockerCon2017中新发布的Moby项目和Linuxkit项目,为大家详细地介绍了Moby与Docker的区别,以及Linuxkit的优势所在,并通过示例介绍了如何利用Moby工具和Linuxkit定制容器系统。
Joyent公司CTO谈容器安全:安全性是容器部署面临的首要问题 本文讲的是Joyent公司CTO谈容器安全:安全性是容器部署面临的首要问题【编者的话】随着容器技术的发展,越来越多的IT企业开始关注容器技术。面对视安全如生命的企业级项目,如何才能帮助他们快速扫清拥抱容器技术的障碍?致力于容器云服务的Joyent公司CTO Bryan Cantrill在第97期The New Stack Analysts中探讨了Joyent对容器安全问题的一些看法。
NUTANIX:从虚拟机迁移到容器是不自然的,对新平台的质疑 本文讲的是NUTANIX:从虚拟机迁移到容器是不自然的,对新平台的质疑,【编者的话】当前的容器技术越来越火,但是没有技术是十全十美的,都有着自己的优势、劣势。Nutanix从自己的角度谈论了容器类技术优劣以及当前应用栈的现状。
保持容器基础设施安全的5个最佳办法 本文讲的是保持容器基础设施安全的5个最佳办法【IT168 评论】软件容器无疑正处于上升期的,开发人员在构建更高效且能迅速带到市场的原生云应用程序时,更会看重容器所提供的灵活性。同时由于容器所带来的资源利用率的提高,也有益于提高生产力,降低成本。
无需容器运行就能对其进行漏洞扫描的技术 本文讲的是无需容器运行就能对其进行漏洞扫描的技术,容器可追溯到1979年的chroot命令,但Docker的出现让该技术的流行度和可用性有了指数级增长。任何技术一旦流传开来,必然也就成了攻击的目标。