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

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: # 当 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!

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务&nbsp;ACK 容器服务&nbsp;Kubernetes&nbsp;版(简称&nbsp;ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情:&nbsp;https://www.aliyun.com/product/kubernetes
目录
相关文章
|
21天前
|
Kubernetes 网络协议 应用服务中间件
K8S二进制部署实践-1.15.5
K8S二进制部署实践-1.15.5
31 0
|
28天前
|
缓存 安全 Java
阿里云数据库 SelectDB 内核 Apache Doris 2.0.6 版本正式发布
阿里云数据库 SelectDB 内核 Apache Doris 2.0.6 版本正式发布
|
29天前
|
存储 Kubernetes Docker
容器服务ACK常见问题之阿里云控制台进不去了如何解决
容器服务ACK(阿里云容器服务 Kubernetes 版)是阿里云提供的一种托管式Kubernetes服务,帮助用户轻松使用Kubernetes进行应用部署、管理和扩展。本汇总收集了容器服务ACK使用中的常见问题及答案,包括集群管理、应用部署、服务访问、网络配置、存储使用、安全保障等方面,旨在帮助用户快速解决使用过程中遇到的难题,提升容器管理和运维效率。
|
23天前
|
Kubernetes 流计算 Perl
在Rancher K8s上部署Flink时,TaskManager连接不上并不断重启可能是由多种原因导致的
在Rancher K8s上部署Flink时,TaskManager连接不上并不断重启可能是由多种原因导致的
33 7
|
1天前
|
Java 应用服务中间件 Linux
在阿里云服务器上部署Tomcat详细图文详解
本文介绍了在阿里云服务器上安装和配置JDK和Tomcat的步骤。首先,需要注册阿里云账号并进行实名认证,然后购买并设置服务器。接着,通过File Zilla连接服务器,创建Java和Tomcat的安装目录,并将JDK和Tomcat的tar.gz文件上传到服务器,解压并重命名。之后,配置JDK的环境变量,将catalina.sh复制到/etc/init.d/目录下,并修改相关配置。最后,启动Tomcat并配置安全组规则,确保可以通过公网访问。
|
2天前
|
弹性计算 JavaScript Java
阿里云服务器搭建部署宝塔详细流程
以下是内容的摘要: 本文主要介绍了在阿里云上创建和配置服务器环境的步骤,包括注册阿里云账号、实名认证、购买和设置服务器、域名的获取与备案、以及使用宝塔面板安装和配置环境。首先,用户需要注册阿里云账号并进行实名认证,选择合适的服务器配置。接着,购买服务器后,要准备并备案域名,以便通过友好的网址访问网站。在服务器上安装宝塔面板,可以方便地管理和配置LAMP/LNMP/Tomcat/Node.js等应用环境。完成这些步骤后,用户还需要在宝塔面板中安装MySQL、Redis等数据库,部署Java或Vue项目,并配置相关端口。最后,将前端项目打包上传至服务器,并设置站点,即可实现网站的上线。
|
2天前
|
应用服务中间件 Linux 开发工具
如何在阿里云服务器快速搭建部署Nginx环境
以下是内容的摘要: 本文档主要介绍了在阿里云上购买和配置服务器的步骤,包括注册阿里云账号、实名认证、选择和购买云服务器、配置安全组、使用Xshell和Xftp进行远程连接和文件传输,以及安装和配置Nginx服务器的过程。在完成这些步骤后,你将能够在服务器上部署和运行自己的网站或应用。
|
4天前
|
NoSQL 关系型数据库 MySQL
阿里云服务器部署项目流程
本文主要讲解阿里云服务器的部署,如何选择配置等
|
7天前
|
Java 应用服务中间件 Linux
阿里云服务器部署多个tomcat
阿里云服务器部署多个tomcat
|
5天前
|
Kubernetes 搜索推荐 Docker
使用 kubeadm 部署 Kubernetes 集群(二)k8s环境安装
使用 kubeadm 部署 Kubernetes 集群(二)k8s环境安装
39 17

相关产品

  • 容器服务Kubernetes版