#kubernetes-cluster #kubernetes #terraform #aws #infrastructure #coreos

app kaws

使用 Terraform 在 AWS 上创建和管理 Kubernetes 集群

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

MIT 许可证

115KB
3K SLoC

Rust 2K SLoC // 0.0% comments HCL 1K SLoC // 0.0% comments

kaws

kaws 是一个用于在 AWS 上使用 KubernetesTerraform 创建和管理 Kubernetes 集群的工具。它整合了其他几个工具,使得 Kubernetes 的部署变得简单、可重复和安全的。

kaws 不旨在支持 Kubernetes 集群的所有可能的部署场景。它遵循 InQuicker 使用的一种特定方法,涉及特定的软件、服务和约定。具体来说,kaws 使用 CoreOS 服务器在 AWS 上创建 Kubernetes 集群,所有这些都由 Terraform 的声明性配置文件管理。

状态

kaws 尚未达到 1.0 版本,直到那时不建议在生产环境中使用。根据 语义版本控制,当 kaws < 1.0 时,可能会发生向后不兼容的更改。有关详细信息,请参阅 问题

CoreOS 和 Kubernetes 团队计划让 Kubernetes 在未来实现“自托管”。如果这个愿景得以实现,就不需要在基础设施供应和 Kubernetes 工具之间有如此紧密的耦合。那时,kaws(以及可能的 kube-aws,见下一节)可能被退役。有关更多信息,请参阅 自托管 Kubernetesbootkube

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 需要以下其他程序在你的系统上可用

macOS

所有依赖项都可以使用 Homebrew 安装

brew install terraform cfssl kubernetes-cli

安装 kaws

一旦所有必需的依赖项都已安装到你的系统上,你就可以安装 kaws。

预编译的二进制文件

标记版本号的已签名预编译二进制文件可在 发布 页面上下载。

从源码构建

  1. 为你的系统安装适当的 Rust 版本。
  2. 运行 git clone [email protected]:InQuicker/kaws.git
  3. 在刚刚克隆的存储库中,运行 cargo build --release
  4. 将二进制文件从 target/release/kaws 复制到你的 PATH 中的一个目录,例如 /usr/local/bin

文档

详细文档可在 docs 目录中找到。一个好的开始是 概述

开发

要打包当前版本以供分发,更新 Makefile 中的 TAG,然后运行 make。发布工件将写入 dist 目录。你需要 GPG 秘密密钥来签署 sha256sums.txt

将为 inquicker/kawsinquicker/kaws:$TAG 创建 Docker 镜像,但你必须手动推送它们。必须手动运行 cargo publish 以将软件包发布到 crates.io。

“kaws”采用MIT许可发布。有关详细信息,请参阅LICENSE

依赖项

~18–27MB
~525K SLoC