kubernetes

Kubernetes 支持 OpenAPI

Open API 让 API 提供者可以定义自己的操作和模型,并让开发者可以自动化的生成喜欢语言的客户端,用以和 API 服务器通信。Kubernetes 已经支持 Swagger 1.2(OpenAPI 规范的前身)有一段时间了,但是这一标准不够完整和有效,凭借这一支持,非常难生成工具或客户端。

在 Kubernetes 1.4,我们对目前的模型和操作进行了升级,引入了 Open API 规范(在没被捐献给 Open API 之前被称作 Swagger 2.0)支持的 Alpha 版本。从 Kubernetes 1.5 开始,OpenAPI 规范的支持已经完备,能够直接从 Kubernetes 源码生成规范,对于模型和方法的任何变更,都会保障文档和规范的完全同步。

StatefulSet: Kubernetes 中对有状态应用的运行和伸缩

我们认为,对于大量的有状态容器化负载,我们已经具备了一定的支持能力。我们并不是宣称这一功能已经完全完成,但是我们相信他已经处于一个可用状态,并且我们会在推动其正式发布的过程中保持其兼容性。

Kubernetes 中的容器运行时接口

文中多次出现了个单词 shim,胡翻成代理了,虽然垫片还是比鲁棒啥的好听。。

归根结底,Kubernetes Node 的最底层就是启动和停止容器的组件了,这一部分我们称之为容器运行时( Container Runtim ),这其中最知名的也就是 Docker 了,这一领域正在快速成长,他并不孤独。为了让 Kubernetes 更具扩展性,我们投入了不少精力,在 Kubernetes 中加入了容器运行时插件 API,我们称之为 “CRI”。

Kompose: Docker-compose 到 Kubernetes 的迁移工具

Docker 给了开发者以巨大的帮助。让每个人都能够从 Docker Registry 启动一个打包好的 Docker 应用。为了对付多容器应用, Docker 开发了 Docker-compose (也就是 Compose)。Compose 借助 yaml 格式的描述文件来定义一个多容器应用,然后就可以用一个简单的 docker-compose up 来启动这一应用中的多个容器。然而,Compose 只能够在本地或者 Docker Swarm 集群中运行。 那如果我们需要在 Swarm 之外运行怎么办?比如 Kubernetes?

Kubernetes 中的 StorageClass 和动态卷供给

存储是容器运行环境的重要一环,Kubernetes 提供了一些用于存储管理的基础能力。动态卷供给是一个 Kubernetes 独有的功能,这一功能允许按需创建存储卷。在没有这种能力之前,集群管理员需要打电话给他们的云或者存储提供者来创建新的存储卷,成功以后再创建 PersistentVolume 对象,才能够在 Kubernetes 中使用。动态卷供给能力让管理员不必进行预先创建存储卷,而是随用户需求进行创建。这一特性在 1.2 版本中处于 α 阶段,在 版本 1.4 中提升为 β。这一版本提高了动态卷的弹性和可用性。

Kubernetes 部署安全最佳实践

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

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

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

确保镜像无漏洞

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

Minikube:轻松运行本地 Kuberntes 集群

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

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

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

使用 Minikube

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

页面