在早期的一篇博文中,我介绍了如何使用 kops 在 AWS 上设置 Kubernetes 集群。默认情况下,kops create cluster
命令会从稳定的 kops 渠道中选择默认的 Kubernetes 版本,这适用于多数开发人员。如果您需要特定版本,可以使用 --kubernetes-version
选项指定。但是,如果您想使用 kops 创建一个使用 Kubernetes 中近期合并的 PR 的版本,该怎么操作呢?(或许您也像我一样,等不及完成整个测试周期,来让 kops 在渠道中为此提供支持,而是想立即试用此功能!)这篇由 Micah Hausler 所写的客座文章说明了如何通过 Kubernetes 的开发版本,来使用 kops 运行您自己的集群。
kops 是在 AWS 上创建、运行和管理 Kubernetes 集群的最简单的工具之一。您可以按照 Arun 早期的一篇博文 Manage Kubernetes Clusters on AWS Using Kops (在 AWS 上使用 Kops 管理 Kubernetes 集群) 中的说明,轻松为已发布的 Kubernetes 版本创建集群。在本文中,我们将展示如何创建运行 Kubernetes 开发版本的集群。kops 声明了其官方支持的 Kubernetes 版本,截至本文发布时,受支持的最新版本是 Kubernetes 1.8.4。本文中的示例使用的 Kubernetes 版本全都_不_受 kops 支持,因此建议您只将这些版本用于开发、原型设计和测试。
您必须要有 kops、kubectl、gsutil 和 AWS 命令行界面,才能尝试执行示例操作。
背景 – 版本二进制
使用 kops 创建集群时,您可以选择指定 kops 支持的 Kubernetes 版本,也可以向 kops 提供 Kubernetes 二进制文件所在的 HTTP URL 地址。
Kubernetes 发布团队将版本二进制文件放在了位于以下位置的 Google 云端存储存储桶“kubernetes-releases”中:https://storage.googleapis.com/kubernetes-release/release/
您可以使用 gsutil 命令行工具验证特定路径中的所有必需二进制文件。(URL 的“https://storage.googleapis.com/”将会替换为“gs://”)
每个指向 Kubernetes 的 Pull Request 都会经过 kops 测试,并在 Github 状态中显示为“pull-kubernetes-e2e-kops-aws”测试。
单击 kops 测试的“详细信息”后,您会看到测试输出以及指定 Pull Request 的具体提交版本。
本测试所用的 Kubernetes 二进制文件也存储在名为“kubernetes-release-pull”的 Google 云端存储存储桶中。如果您通过搜索 kops 测试的原始版本日志来查找版本字符串,就会发现版本二进制文件已上传至以下位置:
因此,对于 pull request #56759,您可以将 kops 中的 Kubernetes 版本设置为 URL
如果您对使用 Kubernetes 的自定义版本和将二进制文件上传至 S3 感兴趣,请参阅 kops 文档。
创建集群
您必须要有相应的 AWS 权限,才能创建集群。(如果您使用的不是跨账户角色,请设置环境变量 AWS_SDK_LOAD_CONFIG=1
) 参阅 kops 文档,了解如何利用必要的 IAM 权限创建 AWS 用户。IAM 权限的简短列表如下所示:
拥有具有相应权限的用户后,您就可以创建集群了。您需要为集群命名,并需要有 kops 存储声明所需的 S3 存储桶,以及您要在其中创建集群的 AWS 区域和可用区。下列示例使用 us-east-1 和 Kubernetes 1.9.0。
如果您要为 kops 使用新的 S3 存储桶,则需要先创建:
现在,您可以创建集群了!创建集群时有很多选项可供选择,请查看“kops create cluster -h
”的帮助输出,了解可用的选项。
运行 kops create
后, kubectl
环境将会更新为指向您的新集群。所有资源完成联机需要几分钟的时间;您可以使用命令 kops validate cluster
查看集群状态。
现在,您已经在 AWS 上建立了一个 Kubernetes 集群!
行动起来吧
去年,kops 项目取得了长足发展,我们喜见社区积极参与,贡献自己的力量。如果您需要帮助,可以加入 Kubernetes Slack,并在 #kops 频道中提问。如果您想贡献一份力量,请参阅有关贡献的 kops 文档。
以下是在单个脚本中编译的上述所有步骤:
https://gist.github.com/micahhausler/b389cdb2cb5d0c51ee02d01454e9263a
Micah Hausler 是 Skuid 的网站运维工程师,负责管理 DevOps 团队,同时还是 Kubernetes 参与者。您可以在 Twitter、Github 和 Kubernetes Slack 上搜索 @micahhausler 找到他。
本博文中的内容和观点均源自第三方作者,AWS 对本博文中的内容或准确性不承担任何责任。
作者介绍:
Arun Gupta
本文转载自 AWS 技术博客。
原文链接:
https://amazonaws-china.com/cn/blogs/china/running-bleeding-edge-kubernetes-on-aws-with-kops/
评论