您现在的位置是:首页 > 文章详情

Kubernetes 实战教学,手把手教您设置拥有5个节点的 K8S 群集(无需搭建任何基础设施)

日期:2018-12-20点击:461

screenshot

出品丨Docker公司(ID:docker-cn)
编译丨小东
每周一、三、五,与您不见不散!


您是 Kubernetes新手吗?想用 Kubernetes 开创自己的事业吗?如果想,那么欢迎您,您来对地方了。本系列文章将为您提供帮助您使用 Kubernetes 获得实践经验的教程。在这里,您可以找到各种实验和教程,无论您是初学者、系统管理员、IT 专业人员还是开发人员,都可以为您提供帮助。而且,这是一个基于浏览器的免费学习平台,已经为您安装了 kubenetes 工具,如kubeadm、kompose 和 kubectl,您不需要额外增加任何基础设施,因为大多数教程都在 Play with K8s Platform 上(https://labs.play-with-k8s.com)运行。

Kubernetes(通常缩写为K8S)用于管理云平台中多个主机上的容器化的应用。Kubernetes 是自动化容器操作的开源平台,这些操作包括部署、调度和节点集群间扩展。在Kubernetes中,我们可以创建多个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这一组应用实例的管理、发现和访问,而这些细节都不需要运维人员去进行复杂的手工配置和处理。

Kubernetes可以通过简单、自动化的部署、更新(滚动更新)以及几乎零停机时间来管理我们的应用程序和服务,大大加速开发过程。它还提供自我修复,当进程在容器内崩溃时,Kubernetes 可以检测并重新启动服务。任何开发人员都可以使用基本的 Docker 知识,打包应用程序并将其部署在 Kubernetes 上。

在一分钟内,Kubernetes 就可以在物理或虚拟机集群上安排和运行应用程序容器。Kubernetes还允许开发人员“切断”物理机和虚拟机的联系,从以主机为中心的基础设施转移到以容器为中心的基础设施,从而为您提供容器本身固有的全部优势。Kubernetes 提供了构建真正以容器为中心的开发环境基础设施。K8s 为容器分组、容器编排、健康检查、服务发现、负载平衡、水平自动扩展、隐私、配置管理、存储编排、资源使用监控、CLI和仪表板提供了丰富的功能。

这是第一篇针对设置5节点 Kubernetes 集群的文章。要开始使用 Kubernetes,请按照以下步骤操作:

在浏览器上打开 https://labs.play-with-k8s.com

点击“Start”按钮,进入PWK实例,如下图所示:

screenshot

点击“Add Instances” 来设置第一个 k8s 节点。

screenshot

克隆镜像仓库

git clone https://github.com/ajeetraina/kubernetes101/ cd kubernetes101/install 

引导第一个节点集群

sh bootstrap.sh 

添加新的 K8s 群集节点

  • 点击“Add Instances” 来设置第一个 k8s 集群节点。
  • 等待1分钟直到完成。
  • 复制以“kubeadm join”开头的命令,我们需要在工作节点上运行它。

设置工作节点

单击“Add New Instance”并将最后一个 kubeadm 命令粘贴到这个新的新工作节点上。

[node2 ~]$ kubeadm join --token 4f924f.14eb7618a20d2ece 192.168.0.8:6443 --discovery-token-ca-cert-hash sha256:a5c25aa4573e06a0c11b11df23c8f85c95bae36cbb07d5e7879d9341a3ec67b3 

您将看到以下输出结果:

[kubeadm] WARNING: kubeadm is in beta, please do not use it for production clusters.

[preflight] Skipping pre-flight checks[discovery] Trying to connect to API Server "192.168.0.8:6443"

[discovery] Created cluster-info discovery client, requesting info from "https://192.168.0.8:6443"

[discovery] Requesting info from "https://192.168.0.8:6443" again to validate TLS against the pinned public key

[discovery] Cluster info signature and contents are valid and TLS certificate validates against pinned roots, will use API Server "192.168.0.8:6443"[discovery] Successfully established connection with API Server "192.168.0.8:6443"

[bootstrap] Detected server version: v1.8.15

[bootstrap] The server supports the Certificates API (certificates.k8s.io/v1beta1)

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.

[node2 ~]$

验证 Kubernetes 集群

在主节点上运行以下命令:

[node1 ~]$ kubectl get nodes

NAME STATUS ROLES AGE VERSION

node1 Ready master 15m v1.10.2

node2 Ready 1m v1.10.2

[node1 ~]$

添加工作节点

[node1 ~]$ kubectl get nodes

NAME STATUS ROLES AGE VERSION

node1 Ready master 58m v1.10.2

node2 Ready 57m v1.10.2

node3 Ready 57m v1.10.2

node4 Ready 57m v1.10.2

node5 Ready 54s v1.10.2

[node1 ]$ kubectl get po

No resources found.

[node1 ]$ kubectl get svc

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE

kubernetes ClusterIP 10.96.0.1 443/TCP 1h

[node1 ]$

在下一篇文章,我将展示如何在5节点的 Kubernetes 集群上构建一个简单的 Nginx 应用程序。

原文链接:https://yq.aliyun.com/articles/680865
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章