11 个版本 (破坏性更新)
使用旧的 Rust 2015
0.10.0 | 2017 年 9 月 7 日 |
---|---|
0.8.0 | 2017 年 7 月 27 日 |
0.6.2 | 2017 年 2 月 23 日 |
0.5.0 | 2016 年 12 月 29 日 |
0.3.0 | 2016 年 11 月 7 日 |
#2 in #core-os
每月下载量 34
115KB
3K SLoC
kaws
kaws 是一个用于在 AWS 上使用 Kubernetes 和 Terraform 创建和管理 Kubernetes 集群的工具。它整合了其他几个工具,使得 Kubernetes 的部署变得简单、可重复和安全的。
kaws 不旨在支持 Kubernetes 集群的所有可能的部署场景。它遵循 InQuicker 使用的一种特定方法,涉及特定的软件、服务和约定。具体来说,kaws 使用 CoreOS 服务器在 AWS 上创建 Kubernetes 集群,所有这些都由 Terraform 的声明性配置文件管理。
状态
kaws 尚未达到 1.0 版本,直到那时不建议在生产环境中使用。根据 语义版本控制,当 kaws < 1.0 时,可能会发生向后不兼容的更改。有关详细信息,请参阅 问题。
CoreOS 和 Kubernetes 团队计划让 Kubernetes 在未来实现“自托管”。如果这个愿景得以实现,就不需要在基础设施供应和 Kubernetes 工具之间有如此紧密的耦合。那时,kaws(以及可能的 kube-aws,见下一节)可能被退役。有关更多信息,请参阅 自托管 Kubernetes 和 bootkube。
kaws 未经过安全专家的审查。有关 kaws 的威胁模型信息,请参阅 安全 文档。
类似工具
当 kaws 首次创建时,以下所有工具都不存在,这就是我们选择开发它的原因。从那时起,这些工具已经公开发布。它们都是由更大的团队开发,并考虑更广泛的使用案例。kaws 由于与我们的特定配置最佳匹配,因此仍在 InQuicker 中使用。但是,如果您需要,请考虑使用以下其他工具。
- kube-aws(来自 CoreOS)。这是与 kaws 最相似的,但不使用 Terraform。
- kops 来自 Kubernetes。支持将配置导出为 Terraform 格式,但不是围绕基于 Terraform 的基础设施构建的。默认不使用 CoreOS 服务器。由于两个项目都位于 Kubernetes 组织下,因此不清楚与 kubeadm 之间的关系。
- kubeadm 来自 Kubernetes。是 Kubernetes 分发中包含的一个 alpha 状态工具。不处理 Kubernetes 运行在其上的基础设施。
摘要
USAGE:
kaws [FLAGS] [SUBCOMMAND]
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
SUBCOMMANDS:
admin Commands for managing cluster administrators
cluster Commands for managing a cluster's infrastructure
help Prints this message or the help message of the given subcommand(s)
init Initializes a new repository for managing Kubernetes clusters
首先,使用 init
命令创建一个新的存储库。
目标
- 定义基础设施代码以实现可预测性和可重复性
- 生成和部署安全的、高可用的 Kubernetes 集群
- 安全地生成和分发 Kubernetes API 访问凭证
- 尽可能避免使用 shell 脚本
支持的平台
目前,kaws 仅在 macOS 上开发和测试过。
安装依赖项
kaws 需要以下其他程序在你的系统上可用
- Terraform,版本 0.8 或更高
- cfssl 重要:cfssl 必须使用 Go 1.8+ 构建。如果你已安装 Go 1.8+,你可以使用
go get -u github.com/cloudflare/cfssl
安装 cfssl。确保$GOPATH/bin
在你的 PATH 中。参见 https://github.com/InQuicker/kaws/issues/12。 - kubectl,版本 1.7 或更高
macOS
所有依赖项都可以使用 Homebrew 安装
brew install terraform cfssl kubernetes-cli
安装 kaws
一旦所有必需的依赖项都已安装到你的系统上,你就可以安装 kaws。
预编译的二进制文件
标记版本号的已签名预编译二进制文件可在 发布 页面上下载。
从源码构建
- 为你的系统安装适当的 Rust 版本。
- 运行
git clone [email protected]:InQuicker/kaws.git
。 - 在刚刚克隆的存储库中,运行
cargo build --release
。 - 将二进制文件从
target/release/kaws
复制到你的 PATH 中的一个目录,例如/usr/local/bin
。
文档
开发
要打包当前版本以供分发,更新 Makefile 中的 TAG
,然后运行 make
。发布工件将写入 dist
目录。你需要 GPG 秘密密钥来签署 sha256sums.txt
。
将为 inquicker/kaws
和 inquicker/kaws:$TAG
创建 Docker 镜像,但你必须手动推送它们。必须手动运行 cargo publish
以将软件包发布到 crates.io。
法律
“kaws”采用MIT许可发布。有关详细信息,请参阅LICENSE
。
依赖项
~18–27MB
~525K SLoC