容器服务Docker&Kubernetes 关注
手机版

10分钟自动部署Kubernetes1.6.1集群

  1. 云栖社区>
  2. 容器服务Docker&Kubernetes>
  3. 博客>
  4. 正文

10分钟自动部署Kubernetes1.6.1集群

升功 2017-04-14 12:02:13 浏览6367 评论8

摘要: Kubernetes是非常流行的容器管控平台,阿里云的容器服务团队为Kubernetes提供的基于阿里云服务的CloudProvider,让Kubernetes可以更好的和阿里云的计算资源深度集成,提供更好的性能和网络特性。

Kubernetes是非常流行的容器管控平台,阿里云的容器服务团队为Kubernetes提供的基于阿里云服务的CloudProvider,让Kubernetes可以更好的和阿里云的计算资源深度集成,提供更好的性能和网络特性。本文主要目的是为大家提供一种非常简单的方法,在阿里云上部署Kubernetes集群。

本文所描述的部署过程基于阿里云资源编排服务(ROS),部署过程中会自动创建Kubernetes运行所需的VPC网络、安全组、子用户、ECS等资源,无需关注资源创建和安装细节。使大家能够非常简单的在10分钟内部署一个Kubernetes集群。

注:

  • 通过此方式部署的Kubernetes集群适合作为开发、测试或者demo演示使用,对高可用要求较高的场景不适用。Kubernetes的生产环境高可用部署方案我们会马上提供。请大家关注资源编排服务在云栖社区的官方博客。
  • 部署过程中所创建的ECS为按量付费实例,好处是方便短时间的测试、demo使用,可以随时删除(可以在ROS控制台整体删除,其中有部分SLB资源是K8S的CloudProvider创建的,需要手动删除)。如果需要长期保留,可以在ECS控制台,把ECS实例转为按包年包月付费。
  • 创建按量付费ECS需要保证账户内至少有100元余额。

Setp 1

点击 部署Kubernetes 进入如下页面:

step1

根据实际需要,选择集群部署的目标区域,并点击[下一步]。

注: 如果未开通过资源编排服务(ROS), 请根据提示开通服务。

Step 2

step1_1

部署过程中所有被创建的VPC、ECS会被放入一个叫做资源栈的ROS逻辑概念中,未来可以在ROS控制台对资源栈进行整体的维护。视实际需要,可以修改资源栈名称。

ECS实例规格指用户部署Kubernetes的Master节点和Node节点的机器规格,可以视实际需要修改,实例规格的CPU和内存不能低于默认值。

Node节点数,表示被被创建的Kubernetes集群的节点数,默认为2,可以视实际需求修改,但不能低于1。

ECS登录密码,用来登录ECS终端, 密码要符合ECS的强度要求,必须包含大小写字母和数字。

点击[创建],启动部署。

step3

至此,部署已经启动,部署过程不需要值守,部署完成后会有短信通知,也可以进入ROS的事件列表,跟踪部署过程:

step4

事件列表,详细列出了所有被创建的VPC、安全组、子账号、ECS等资源的创建过程和状态。所有被创建的资源可以在资源列表查看:

step5

可以通过点击资源ID连接进入对应产品的控制台,进行更多操作,比如进入ECS控制台登录终端。

Step 3

部署完成后,资源栈状态变为[创建完成]。

done

接下来,我们就可以在[资源列表]中找到k8s_master这个ECS,点击链接,进入ECS控制台,登入终端,进行接下里的Kubernetes操作。

master

查看Node节点:
nodes

查看daemonsets:
ds

至此,一个Kubernetes集群部署完成。如果希望长期保留此集群,可以进入ECS控制,对资源进行转包年包月的操作。或者,进入ROS控制台,进行删除,之前创建的所有资源,会被整体删除。

ROS示例模板

除了Kubernetes外,ROS控制台还提供了Docker EE、Docker Swarm、Storm、Hadoop等多种流行开源系统的自动化部署方案。用于生产环境的高可用Kubernetes部署方案会在近期提供,请关注ROS控制台或ROS在云栖社区的官方博客。

templstes

用云栖社区APP,舒服~

【云栖快讯】云栖社区技术交流群汇总,阿里巴巴技术专家及云栖社区专家等你加入互动,老铁,了解一下?  详情请点击

网友评论

1F
1208694278698019

期待 Kubernetes的生产环境高可用部署方案

2F
飘雪随风

实验了下这个case,修改了master密码后,kubectl get node,没有发现有其他两个节点信息。。。
[root@k8smaster ~]# kubectl get nodes
NAME STATUS AGE VERSION
k8smaster Ready,master 1h v1.6.0-alpha.0.2229+88fbc68ad99479-dirty
[root@k8smaster ~]#

初扬

必定重现吗?修改master密码是不会影响node的,这个现象看起来是node未注册到master节点。

升功

已经修复了,是因为Node节点获取Token的方式不稳定,有时候会取不到。

评论
3F
joshle

提一个bug,我昨天按照文章的步骤,测试完之后,我删除了ROS栈之后,并没有像文章所说的:【进入ROS控制台,进行删除,之前创建的所有资源,会被整体删除。】而是还有3个 负载均衡SLB 的实例还没有被删除,还好,我今天检查了一遍,发现还在扣我的费用。

升功

非常抱歉,文章中没有说清楚,因为SLB是Kubernetes中的CloudProvider创建的,所以生命周期不是ROS管理的,这一点我加到文章里去。

评论
4F
sora54

j h f g

(来自社区APP)
5F
cloudexp

创建结束后,登录到master上,运行kubectl get node
出现下述错误,请问是什么原因导致的呢?
The connection to the server localhost:8080 was refused - did you specify the right host or port?

升功

先执行:
export KUBECONFIG=/etc/kubernetes/admin.conf

评论
6F
龙芩

ecs实例不分配公网IP地址,使用eip的方式更合理

升功 赞同
1376093346389322

已修复,通过创建NAT来访问公网下载镜像

评论
7F
1668987792578617

我昨天按照介绍创建了一个test的k8s,登录到master,执行kubectl get node, 没有发现另外两个? 很不稳定么?

kubectl get node

NAME STATUS AGE VERSION
cn-zhangjiakou.i-8vbda2qfz3f1pgqi4yw3 Ready 16h v1.7.2-alicloud.1+f2
38a9e59041c1

8F
龙芩

Kubernetes_for_DEV_Chinese,这个模版生成的负载均衡443端口异常,映射ecs为30002,没有对应服务

升功
文章7篇 | 关注24
关注
提供了高性能可伸缩的容器应用管理服务,支持在一组云服务器上通过Docker容器来进行应用生命... 查看详情
是一种简单易用的云计算资源管理和自动化运维服务。用户通过模板描述多个云计算资源的依赖关系、配... 查看详情
帮助您基于阿里云构建出一个隔离的网络环境。您可以完全掌控自己的虚拟网络,如选择自有 IP 地... 查看详情
建站4折

建站4折