据说 Google 的数据中心里运行着超过 20 亿个容器,而且 Google 十年前就开始使用容器技术。
最初,Google 开发了一个叫 Borg 的系统(现在命令为 Omega)来调度如此庞大数量的容器和工作负载。在积累了这么多年的经验后,Google 决定重写这个容器管理系统,并将其贡献到开源社区,让全世界都能受益。
这个项目就是 Kubernetes。简单的讲,Kubernetes 是 Google Omega 的开源版本。
从 2014 年第一个版本发布以来,Kubernetes 迅速获得开源社区的追捧,包括 Red Hat、VMware、Canonical 在内的很多有影响力的公司加入到开发和推广的阵营。目前 Kubernetes 已经成为发展最快、市场占有率最高的容器编排引擎产品。
Kubernetes 一直在快速地开发和迭代。本章我们将以 v1.7 和 v1.8 为基础学习 Kubernetes。我们会讨论 Kubernetes 重要的概念和架构,学习 Kubernetes 如何编排容器,包括优化资源利用、高可用、滚动更新、网络插件、服务发现、监控、数据管理、日志管理等。
下面就让我们开始 Kubernetes 的探险之旅。
先跑起来
按照一贯的学习思路,我们会在最短时间内搭建起一个可用系统,这样就能够尽快建立起对学习对象的感性认识。先把玩起来,快速了解基本概念、功能和使用场景。
越是门槛高的知识,就越需要有这么一个最小可用系统。如果直接上来就学习理论知识和概念,很容易从入门到放弃。
当然,要搭建这么一个可运行的系统通常也不会太容易,不过很幸运,Kubernetes 官网已经为大家准备好了现成的最小可用系统。
kubernetes.io 开发了一个交互式教程,通过 Web 浏览器就能使用预先部署好的一个 kubernetes 集群,快速体验 kubernetes 的功能和应用场景,下面我就带着大家去玩一下。
打开 https://kubernetes.io/docs/tutorials/kubernetes-basics/
页面左边就能看到教程菜单:
教程会指引大家完成创建 kubernetes 集群、部署应用、访问应用、扩展应用、更新应用等最常见的使用场景,迅速建立感性认识。
创建 Kubernetes 集群
点击教程菜单 1.
->
Create a ClusterInteractive Tutorial - Creating a Cluster
显示操作界面。
左边部分是操作说明,右边是 Terminal,命令终端窗口。
按照操作说明,我们在 Terminal 中执行 minikube
,然后执行
startkubectl get nodes
,这样就创建好了一个单节点的 kubernetes 集群。
集群的唯一节点为 host01
,需要注意的是当前执行命令的地方并不是 host01
。我们是在通过 Kubernetes 的命令行工具 kubectl
远程管理集群。
执行 kubectl
查看集群信息:
cluster-info
heapster
、kubernetes-dashboard
都是集群中运行的服务。
注:为节省篇幅,在后面的演示中,我将简化操作步骤,详细的说明和完整步骤请参考官网在线文档。
集群创建好了,下一节我将带领大家快速体验 Kubernetes 的核心功能。
书籍:
1.《每天5分钟玩转Docker容器技术》
https://item.jd.com/16936307278.html
2.《每天5分钟玩转OpenStack》
https://item.jd.com/12086376.html