开发者社区> 初扬> 正文

当 Kubernetes 遇到阿里云 之 快速部署1.6.7版本

简介: # 当 Kubernetes 遇到阿里云 之 快速部署1.6.7版本 阿里云提供了丰富多样的云产品支持,包括ECS、VPC网络、经典网络、负载均衡SLB等等,可以帮助Docker应用轻松在云端运行。
+关注继续查看

当 Kubernetes 遇到阿里云 之 快速部署1.6.7版本

阿里云提供了丰富多样的云产品支持,包括ECS、VPC网络、经典网络、负载均衡SLB等等,可以帮助Docker应用轻松在云端运行。阿里云除了推出容器服务提供了一站式的容器应用管理解决方案,也在不断推动其他开源容器技术和阿里云的集成更好地满足用户的多样化需求。

本文是一个How To文章,尽量用最简单的方式让您在阿里云上一最快的方式一键部署起来一个Kubernetes集群。本文基于Kubernetes最新版1.6.7版本。并且集成了Kubernetes的阿里云CloudProvider,让你能方便的使用阿里云上提供的各种服务,如VPC网络,阿里云SLB,NAS文件存储等等。

同时,您还可以通过阿里云的ROS模板的方式来快速部署本文的Kubernetes。参见

前置条件

  • 支持阿里云CentOS 7.2-x64版本及Ubuntu 16.04版本
  • 支持阿里云VPC网络
  • 准备阿里云账号KeyID与KeySecret,参见
  • 如果您需要下载任何墙外的镜像,请移步使用阿里云镜像服务加速器
  • 请至少准备两个ECS实例,其中 node1 将作为master节点,node2作为工作节点

安装Kubernetes

安装Kubernetes的过程非常简单,总共分两步,1.创建Master;2.添加slave节点。

创建Master节点

创建Master只需要两个参数,阿里云账号的ACCESS_KEY_ID,ACCESS_KEY_SECRET,从这里获得.注意记录输出中的 token 及endpoint.

[root@master ~]# export ACCESS_KEY_ID=your_key_id
[root@master ~]# export ACCESS_KEY_SECRET=your_key_secret
[root@master ~]# curl -sSL http://aliacs-k8s.oss-cn-hangzhou.aliyuncs.com/installer/kubemgr-1.6.7.sh \
| bash -s nice --node-type master --key-id ${ACCESS_KEY_ID} --key-secret ${ACCESS_KEY_SECRET} 

.......

准备中...                          ################################# [100%]
正在升级/安装...
   1:kubernetes-cni-0.5.1-0           ################################# [ 20%]
   2:kubelet-1.6.7-0                  ################################# [ 40%]
   3:kubectl-1.6.7-0                  ################################# [ 60%]
   4:kubeadm-1.6.7-0                  ################################# [ 80%]
   5:ossfs-1.80.0-1                   ################################# [100%]
TOKEN: 612391.bcb426dc8367e04f
[kubeadm] WARNING: kubeadm is in beta, please do not use it for production clusters.
[init] Using Kubernetes version: v1.6.0
[init] Using Authorization mode: RBAC
[init] WARNING: For cloudprovider integrations to work --cloud-provider must be set for all kubelets in the cluster.
    (/etc/systemd/system/kubelet.service.d/10-kubeadm.conf should be edited for this purpose)

......

[certificates] Generated front-proxy client certificate and key.
[certificates] Valid certificates and keys now exist in "/etc/kubernetes/pki"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/admin.conf"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/kubelet.conf"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/controller-manager.conf"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/scheduler.conf"
[apiclient] Created API client, waiting for the control plane to become ready

.......

Your Kubernetes master has initialized successfully!

To start using your cluster, you need to run (as a regular user):

  sudo cp /etc/kubernetes/admin.conf $HOME/
  sudo chown $(id -u):$(id -g) $HOME/admin.conf
  export KUBECONFIG=$HOME/admin.conf

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
  http://kubernetes.io/docs/admin/addons/

You can now join any number of machines by running the following on each node
as root:

  kubeadm join --token aea23c.721b254c602d82c6 10.24.2.46:6443

添加Slave节点

创建另一个ECS作为Kubernetes集群的Slave节点,SSH登录到Slave节点,在上一步中记录输出的TOKEN=aea23c.721b254c602d82c6,ENDPOINT=10.24.2.46:6443

[root@node1 ~]# export ACCESS_KEY_ID=your_key_id
[root@node1 ~]# export ACCESS_KEY_SECRET=your_key_secret
[root@node1 ~]# curl -sSL http://aliacs-k8s.oss-cn-hangzhou.aliyuncs.com/installer/kubemgr-1.6.7.sh \
| bash -s nice --node-type node --key-id ${ACCESS_KEY_ID} --key-secret ${ACCESS_KEY_SECRET} --token ${TOKEN} --endpoint ${ENDPOINT}

.......

[preflight] Skipping pre-flight checks
[discovery] Trying to connect to API Server "10.24.2.46:6443"
[discovery] Created cluster-info discovery client, requesting info from "https://10.24.2.46:6443"
[discovery] Cluster info signature and contents are valid, will use API Server "https://10.24.2.46:6443"
[discovery] Successfully established connection with API Server "10.24.2.46:6443"
[bootstrap] Detected server version: v1.6.7-2+555a0aa47c5afb
[bootstrap] The server supports the Certificates API (certificates.k8s.io/v1beta1)
[csr] Created API client to obtain unique certificate for this node, generating keys and certificate signing request
[csr] Received signed certificate from the API server, generating KubeConfig...
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/kubelet.conf"

Node join complete:
* Certificate signing request sent to master and response
  received.
* Kubelet informed of new secure connection details.

Run 'kubectl get nodes' on the master to see this machine join.

到此一个最小化的Kubernetes集群就已经创建出来了。您可以多次重复添加节点步骤来为集群添加更多的节点。

使用Kubernetes集群

登录到master上面可以通过kubectl命令来操作集群ssh root@master, 如下:运行一个nginx应用,并使用--type=LoadBalancer来使用阿里云CloudProvider创建阿里云SLB。

[root@master ~]# export KUBECONFIG=/etc/kubernetes/admin.conf
[root@master ~]# kubectl get po --namespace=kube-system
[root@master ~]# kubectl run nginx --image=registry.cn-hangzhou.aliyuncs.com/spacexnice/nginx:latest --replicas=2 --labels run=nginx
[root@master ~]# kubectl expose deployment nginx --port=80 --target-port=80 --type=LoadBalancer

同时我们也提前为您部署了Kubernetes的dashboard. 您可以通过以下命令来查看dashboard的NodePort

[root@master ~]# kubectl --namespace=kube-system get svc kubernetes-dashboard
NAME                   CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
kubernetes-dashboard   172.19.52.104   <nodes>       80:31432/TCP   3h 

上面显示端口为31432,然后打开浏览器,通过http://masterip:31432就可以访问到dashboard了。如果没有PORT,可以修改SVC的type=NodePort. kubectl --namespace=kube-system edit svc kubernetes-dashboard

Enjoy your Kubernetes!

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
centos7纯手动安装kubernetes-v1.11版本
简介 本文章主要介绍如何通过使用官方提供的二进制包安装配置k8s集群 实验环境说明 实验架构 lab1: master 11.11.11.111 lab2: node 11.11.11.112 lab3: node 11.
1400 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
20198 0
kubernetes(2):Centos7 安装 kubernetes 1.5 版本
1,kubernetes 安装 centos 7 已经集成了kubernetes 1.5 直接安装就可以了。 非常的简单,方便。 yum install kubernetes etcd docker 同时会,安装一个kubernetes-client kubernetes-master kubernetes-node 运维也是非常的方便了。1.5.2-
2329 0
Kubernetes概念介绍和v1版本部署过程
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq1010885678/article/details/48719923 简介: k8s一个开源的,跨主机管理容器应用集群的编排系统,为应用提供了基础的部署、维护和扩缩容机制。
1105 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
18466 0
越来越稳!Kubernetes 1.8.0 版本发布
发布稳定版并不意味着 Kubernetes 停止新功能的的开发,实际上在 Kubernetes 1.8 中有非常多新功能发布,部分功能甚至是“里程碑”式的功能;我们可以从这些功能看到 Kubernetes 的长期发展情况。
1547 0
阿里云Kubernetes容器服务 - 快速部署虚拟节点virtual-nodes
容器和Serverless的多样结合 随着容器和Serverless概念的普及,阿里云容器服务团队和弹性计算团队合作推出了多个Serverless容器产品和解决方案,包括Serverless Kubernetes、弹性容器实例ECI、virtual-nodes addon功能。
7672 0
Helm 用户指南-系列(3)-Kubernetes各发行版本Helm简介
本文档描述有关在各Kubernetes发行版本环境中使用Helm的信息。 我们尝试为此文档添加更多详细信息。如果可以,请通过Pull Requests提交(https://github.com/kubernetes/helm)。
1231 0
+关注
初扬
http://aoxn.github.io/
15
文章
5
问答
来源圈子
更多
容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级 Kubernetes 容器化应用的全生命周期管理。容器服务 Kubernetes 版简化集群的搭建和扩容等工作,整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳的 Kubernetes 容器化应用运行环境。
+ 订阅
相关文档: 容器镜像服务 ACR 容器服务 ACK 服务网格 ASM
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载