Kubernetes 部署安全最佳实践

编者按:本文作者是来自 Aqua Security 的 Amir Jerbi 和 Michael Cherny,他们以大量的案例和经验为基础,总结并描述了 Kubernetes 部署中的最佳安全实践。

Kubernetes 提供了很多能够提高应用安全的方法。要进行这些配置,就要掌握 Kubernetes 的相关知识,同时也要清楚的了解安全需求。这里我们关注的安全内容集中在容器的生命周期上:构建、传输以及运行,并且针对 Kubernetes 进行了特别的裁剪。我们自己的 SaaS 就是运行在 Google Cloud Platform 上的 Kubernetes 中,已经采用了这些最佳实践。

下面是我们对于安全部署 Kubernetes 应用的一些建议。

确保镜像无漏洞

运行带有漏洞的容器会让你的环境身处险境。只要运行中的系统的所有组件都不存在已知漏洞,就能够避免很多被攻击的机会。

利用 Kubernetes Pet Set 运行上千个 Cassandra 实例

不知所云,瞎翻

希腊怪兽追逐赛(The Greek Pet Monster Races)是一个在 Kubernetes 中运行 Cassandra 的演示程序。其中会生成非常大量的数据 —— Cassandra 的时序数据和随机数据很有用,Kubernetes 和 Cassandra 都是古希腊词语,所以就有了这个名字。

运行

我们希望在 Greek Pet Monster Races 中使用随 Kubernetes 1.3 发布的 Pet Set。经过对一千个 Cassandra 实例的测试,我们确信 Kubernetes 1.3 已经可以投入使用了。下面我们会简述我们如何在 Kubernetes 中使用 Cassandra,在此过程中建立了我们最大的集群。

Minikube:轻松运行本地 Kuberntes 集群

Kubernetes 已经是目前最佳的应用容器化工具之一。在投入实际使用之后的一年来,Kubernetes(社区)需要一个本地开发平台。

在过去的几个月中,Kubernetes 社区中的很多成员在为 Github 的 Minikube 仓库 奋战。我们要建立一个可以一键运行的版本,这个版本要易用和准确兼顾,并且能够兼容 Mac、 Linux 以及 windows 的工作站和笔记本电脑。

感谢社区成员的贡献,我们自豪的宣告 Minikube 的诞生,并与 Kubernetes 1.3 一起发布,新的命令能够更好的跟本地集群通信,并且加入了试验性的对 xhyve(OS X)以及 KVM(Linux)的支持。

使用 Minikube

Minitube 是一个独立的 Go 应用,所以只要下载运行就可以了:

Kubernetes 1.3 五日谈

Kubernetes 在两年前第一次 Push 到 GitHub,上个星期,发布了 Kubernetes 1.3。现在超过 800 个贡献者进行了三万多次提交,1.3 版的起飞得益于用户反馈驱动产生的持续改进。

这一版本中再次加入了非常多的改进和新特性,我们将会选择其中的亮点来进行推介。这一系列文章将会对 Kubernetes 的新功能以及未来思路进行深度介绍。

Kubernetes 1.3 的性能和弹性 —— 2000 节点,60,0000 Pod 的集群

我们自豪的宣布 Kubernetes 1.3 的发布,现在能够在支持 2000 节点规模的集群上提供更好的端到端 Pod 启动时间。API 调用的延迟符合我们的一秒钟的 服务水平目标( SLO ),并且多数情况下是远远优于这一目标的。如果不考虑 SLO 限制的话,还可能运行超过 2000 节点的集群。

Docker DevOps:数据容器和网络

Tags: 

Matt Saunders 具有企业和创业的双重背景,Contino 的高级工程师和首席 DevOps 顾问。Matt 还是 [伦敦 DevOps 会议](超过 3000 成员的月度会议)的组织者之一。

Docker 眼中数据容器的未来是怎样的?针对数据容器不应使用在复制系统上的批评,Docker 如何回应呢?

Kubernetes 中使用 Gluster FS

以 RC 形式运行在 Kubernetes 集群中的 Pod,会因为 Scale 等需要在不同的 Node 之间发生迁移,因此需要有独立于 Node 文件系统的共享存储服务,同时这一存储服务也应该符合集群的运行需要,简单的 NFS 不管是效率上还是可靠性上,都是不具备这一能力的。这里以 Gluster FS 作为存储引擎,为容器集群提供云存储服务。

K8S 的存储卷使用稍有点古怪,Gluster FS 的使用,需要首先定义一个 Endpoint + Service 形式的代理,来定义 Gluster FS 集群,然后就可以通过持久卷或者用 Pod 直接加载了。

定义 Service

首先用一个 YML 文件来定义 Endpoint 和 Service:

Kubernetes 中的 Persistent Volumes

经过一番实验,证明,这东西除了抽象,没啥鸟用,直接挂 Volume 应该是目前最佳选择。

持久卷 PersistentVolumes

本文描述了 Kubernetes 中的 PersistentVolumes。要求读者有对卷 (volumes) 所有了解。

简介

存储管理跟计算管理是两个不同的问题。PersistentVolume 子系统,对存储的供应和使用做了抽象,以 API 形式提供给管理员和用户使用。要完成这一任务,我们引入了两个新的 API 资源:PersistentVolume(持久卷)PersistentVolumeClaim(持久卷申请)

PersistentVolume(PV)是集群之中的一块网络存储。跟 Node 一样,也是集群的资源。PV 跟 Volume (卷) 类似,不过会有独立于 Pod 的生命周期。这一 API 对象包含了存储的实现细节,例如 NFS、iSCSI 或者其他的云提供商的存储系统。

页面