“云无界、端无边” OGeek 技术峰会 9月17日 南京不见不散! 了解详情
写点什么

在 AWS 上运行最新的 Kubernetes 2

  • 2019 年 10 月 29 日
  • 本文字数:2645 字

    阅读完需:约 9 分钟

在AWS上运行最新的Kubernetes 2

早期的一篇博文中,我介绍了如何使用 kops 在 AWS 上设置 Kubernetes 集群。默认情况下,kops create cluster 命令会从稳定的 kops 渠道中选择默认的 Kubernetes 版本,这适用于多数开发人员。如果您需要特定版本,可以使用 --kubernetes-version 选项指定。但是,如果您想使用 kops 创建一个使用 Kubernetes 中近期合并的 PR 的版本,该怎么操作呢?(或许您也像我一样,等不及完成整个测试周期,来让 kops 在渠道中为此提供支持,而是想立即试用此功能!)这篇由 Micah Hausler 所写的客座文章说明了如何通过 Kubernetes 的开发版本,来使用 kops 运行您自己的集群。


– Arun




kops 是在 AWS 上创建、运行和管理 Kubernetes 集群的最简单的工具之一。您可以按照 Arun 早期的一篇博文 Manage Kubernetes Clusters on AWS Using Kops (在 AWS 上使用 Kops 管理 Kubernetes 集群) 中的说明,轻松为已发布的 Kubernetes 版本创建集群。在本文中,我们将展示如何创建运行 Kubernetes 开发版本的集群。kops 声明了其官方支持的 Kubernetes 版本,截至本文发布时,受支持的最新版本是 Kubernetes 1.8.4。本文中的示例使用的 Kubernetes 版本全都_不_受 kops 支持,因此建议您只将这些版本用于开发、原型设计和测试。


您必须要有 kopskubectlgsutilAWS 命令行界面,才能尝试执行示例操作。


背景 – 版本二进制

使用 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://”)


gsutil ls gs://kubernetes-release/release/v1.9.0/
复制代码



每个指向 Kubernetes 的 Pull Request 都会经过 kops 测试,并在 Github 状态中显示为“pull-kubernetes-e2e-kops-aws”测试。



单击 kops 测试的“详细信息”后,您会看到测试输出以及指定 Pull Request 的具体提交版本。



本测试所用的 Kubernetes 二进制文件也存储在名为“kubernetes-release-pull”的 Google 云端存储存储桶中。如果您通过搜索 kops 测试的原始版本日志来查找版本字符串,就会发现版本二进制文件已上传至以下位置:


gs://kubernetes-release-pull/ci/pull-kubernetes-e2e-kops-aws/<version></version>
复制代码


因此,对于 pull request #56759,您可以将 kops 中的 Kubernetes 版本设置为 URL


https://storage.googleapis.com/kubernetes-release-pull/ci/pull-kubernetes-e2e-kops-aws/v1.10.0-alpha.1.84+dd628f15f46a9c



如果您对使用 Kubernetes 的自定义版本和将二进制文件上传至 S3 感兴趣,请参阅 kops 文档


创建集群

您必须要有相应的 AWS 权限,才能创建集群。(如果您使用的不是跨账户角色,请设置环境变量 AWS_SDK_LOAD_CONFIG=1) 参阅 kops 文档,了解如何利用必要的 IAM 权限创建 AWS 用户。IAM 权限的简短列表如下所示:


AmazonEC2FullAccessAmazonRoute53FullAccessAmazonS3FullAccessIAMFullAccessAmazonVPCFullAccess
复制代码


拥有具有相应权限的用户后,您就可以创建集群了。您需要为集群命名,并需要有 kops 存储声明所需的 S3 存储桶,以及您要在其中创建集群的 AWS 区域和可用区。下列示例使用 us-east-1 和 Kubernetes 1.9.0。


export CLUSTER_NAME="example.cluster.k8s.local"export KUBERNETES_VERSION="https://storage.googleapis.com/kubernetes-release/release/v1.9.0/"export AWS_DEFAULT_REGION=${AWS_DEFAULT_REGION:-us-east-1}export AWS_AVAILABILITY_ZONES="$(aws ec2 describe-availability-zones --query 'AvailabilityZones[].ZoneName' --output text | awk -v OFS="," '$1=$1')"export S3_BUCKET=${S3_BUCKET:-kops-state-store-$(cat /dev/random | LC_ALL=C tr -dc "[:alpha:]" | tr '[:upper:]' '[:lower:]' | head -c 32)}export KOPS_STATE_STORE=s3://$S3_BUCKET
复制代码


如果您要为 kops 使用新的 S3 存储桶,则需要先创建:


aws s3api create-bucket \ --bucket $S3_BUCKET \ --create-bucket-configuration LocationConstraint=$AWS_DEFAULT_REGION
复制代码


现在,您可以创建集群了!创建集群时有很多选项可供选择,请查看“kops create cluster -h”的帮助输出,了解可用的选项。


kops create cluster \ --name $CLUSTER_NAME \ --zones $AWS_AVAILABILITY_ZONES \ --kubernetes-version $KUBERNETES_VERSION \ --yes
复制代码



运行 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


Arun Gupta 是 Amazon Web Services 的首席开源技术专家。他在 AWS 主要负责与容器和开源有关的所有事务。他还负责 AWS 内部的 CNCF 战略,积极参与 CNCF 董事和技术会议。他曾在 Sun、Oracle、Red Hat 和 Couchbase 组建和领导开发人员社区,在此方面拥有超过 12 年的经验。他有丰富的演讲经历,在 40 多个国家/地区就各种主题发表过演讲,并且连续四年荣膺 JavaOne Rock Star。Gupta 还在美国创立了 Devoxx4Kids 分会,并继续在儿童中推广技术教育。此外,Gupta 还是一位多产的博客作者并出版过多本书籍。他热爱跑步、喜欢环球旅行。这就是 Gupta,一位 Docker 队长、一个 Java 冠军、一名 JUG 领袖、一位 NetBeans 梦之队成员。您可以访问他的博客 @arungupta,了解更多信息。
复制代码


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/running-bleeding-edge-kubernetes-on-aws-with-kops/


2019 年 10 月 29 日 08:00323

评论

发布
暂无评论
发现更多内容

区块链符号理论:符号方案和符号系统

CECBC

互联网大厂考点(阿里+百度+腾讯+字节跳动+美团+京东)

Java高级开发

Java 程序员 架构 面试 大厂

GrowingIO Design 图标库:从原理到实现

GrowingIO技术专栏

SVG 图标库 Sprites Icon Font GrowingIO Design

Alibaba Druid 源码阅读(一) 数据库连接池初步

数据库

区块链之共识算法系列——PoW(二)

Regan Yue

区块链 11月日更 趣讲区块链

研发提效:通过设计稿自动生成前端代码。

石云升

大前端 自动生成 11月日更 研发提效

详解低延时高音质:回声消除与降噪篇

声网

回声消除 音频体验 RTE技术详解

当一名科技女性,决定不再做月亮

脑极体

C++ 动态新闻推送 第36期

很水

c++

C++ 动态新闻推送 第33期

很水

终于有人把“元宇宙”说清楚了

CECBC

鸿蒙的绿野仙踪

脑极体

Alibaba Druid 源码阅读(四) 数据库连接池中连接获取探索

数据库

Alibaba Druid 源码阅读(五)数据库连接池 连接关闭探索

数据库

C++ 动态新闻推送 第37期

很水

c++

自定义View:如何实现手动拖动的图片控件

Changing Lin

11月日更

Alibaba Druid 源码阅读(二) 数据库连接池实现初步探索

数据库

网易云信携手“瑶台”,打造元宇宙商业化实践标杆案例

网易云信

人工智能 虚拟化 虚拟人 元宇宙

ZGC在合合信息HBase平台中的实践

合合信息大数据团队

大数据 性能优化 ZGC HBase 合合信息

模块三-学生管理系统架构设计文档

迪马

Prometheus HTTP API 查询(六)Prometheus Server 状态和 TSDB 状态

耳东@Erdong

Prometheus PromQL HTTP API 11月日更

阿里灵杰产品全面拥抱云原生,双11优惠让企业体会上云便利

阿里云大数据AI技术

大数据 AI 云原生 阿里灵杰

C++ 动态新闻推送 第34期

很水

Python代码阅读(第57篇):倒序字符串

Felix

Python 编程 string 阅读代码 Python初学者

【得物技术】得物直播秒开体验提升

得物技术

体验 直播 视频 优化 卡顿

四大研究成果入选 百度安全在Black Hat Europe 2021再创历史

百度安全

应用安全 百度安全 Black Hat 漏洞利用 恶意软件

Alibaba Druid 源码阅读(三) 数据库连接池初始化探索

数据库

投资元宇宙,如何开启混合现实开发

龙智—DevSecOps解决方案

游戏开发 元宇宙 混合现实

接口调用的链路

卢卡多多

接口 11月日更

12 K8S之应用容器及Pod资源

穿过生命散发芬芳

k8s 11月日更

C++ 动态新闻推送 第35期

很水

首届腾讯云大数据峰会暨Techo TVP开发者峰会

首届腾讯云大数据峰会暨Techo TVP开发者峰会

在AWS上运行最新的Kubernetes 2_语言 & 开发_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章