Kubernetes已经成为云原生软件的标准,因为它与容器有关. 事实上,云原生计算基金会(CNCF)最近的调查发现 Kubernetes在生产中的Usage已经增长到78%. 然而, 就像任何在短时间内迅速流行起来的技术一样, 关于Kubernetes是什么以及Kubernetes和容器化带来的安全考虑有很多困惑. 举个例子:在CNCF同样的调查中, 40%的受访者认为安全性是容器Usage/部署的一个挑战,38%的受访者认为复杂性是一个挑战.
针对负责加固容器部署的安全工程师, 这绝对是一个需要克服的学习曲线. 帮你跟上进度, 我们来看看Kubernetes是什么, 它是如何工作的, 并探索一些基本的Kubernetes安全概念.
Kubernetes是一个用于编排和管理容器工作负载的平台.g. 码头工人容器).
自2014年首次发布以来, Kubernetes——一个开源CNCF毕业项目,其根源可以追溯到谷歌的开发团队——已经成为DevOps和云原生圈子中最受欢迎的工具之一.
理解Kubernetes的先决条件是首先理解容器. 简单地说, 容器是轻量级软件包,包含应用程序运行所需的所有依赖项. 容器解决了在不同环境中可靠运行应用程序的问题. 因为它们重量轻,便于携带, 容器越来越受欢迎,对现代微服务和web应用程序的发展至关重要.
而Usage单个容器并不需要太多的管理和编排, 大型应用程序需要能够扩展. 现代开发团队需要能够自动化和扩展容器部署过程. 这就是容器化工作负载管理工具(如Kubernetes)发挥作用的地方. Kubernetes提供了缺失的管理和编排.
在讨论Kubernetes时,“管理和编排”这个短语经常被抛出. 然而,这并没有告诉我们太多细节. 简单来说, 这意味着Kubernetes可以实现负载平衡, 配置管理, 存储资源配置, 自动资源分配(e.g. 每个容器的CPU和RAM),以及容器部署的放大或缩小.
围绕Docker vs Kubernetes的话题可能会有很多困惑. 然而,其实很简单:
最后一点可能会导致一些混乱. Docker恰好提供了一个工具——Swarm——它提供了与Kubernetes类似的功能. 然而,Kubernetes是迄今为止更受欢迎的管理和编排工具.
除了集装箱, 在开始UsageKubernetes时,还有其他重要的概念需要理解. 让我们来看看一些关键术语:
Kubernetes可以在任何基础设施即代码的容器部署方法有用的地方有效地发挥作用. 这意味着敏捷开发团队和专注于DevOps实践的团队将经常UsageKubernetes来帮助自动化他们的持续集成/持续交付(CI/CD)管道. 另外, Kubernetes可以监控节点的健康状况和资源利用率,并根据需要进行伸缩,从而帮助自动扩展云原生应用程序.
当然, 而Kubernetes则从自动化和可伸缩性的角度增加了价值, 这也给安全团队带来了新的麻烦. 如何确保应用程序和服务的安全部署? 一如既往地, 首先要了解威胁模型和风险偏好, 但是有一些基本知识可以帮助你开始.
制定容器可见性和漏洞扫描计划也至关重要,以确保问题补救迅速发生,并保持符合任何相关标准. 开始容器漏洞扫描和安全态势评估, 我们推荐阅读 容器持续可见性及符合规定(PDF).
现在您已经了解了Kubernetes在高层上的工作原理(自动控制和管理容器部署),接下来就可以安全地部署k8s了. 以深入了解如何Usage容器实现安全性, Kubernetes, 以及无服务器基础设施, 注册查看免费 如何层安全到现代云应用网络研讨会 由云安全专家希勒尔·索洛介绍.