问题:什么是 Kubernetes?
答案 →这就是我们对 Kubernetes 的定义:
•Kubernetes 是一个开源的容器编排平台。
![Kubernetes:解读轻松管理容器化应用的奇妙世界 Kubernetes:解读轻松管理容器化应用的奇妙世界](http://www.zzvips.com/uploads/allimg/b803441e96896d1f.jpg)
•它自动化容器化应用程序的部署、扩展和管理。
![Kubernetes:解读轻松管理容器化应用的奇妙世界 Kubernetes:解读轻松管理容器化应用的奇妙世界](http://www.zzvips.com/uploads/allimg/672204ba4d47225e.jpg)
问题:让我们谈谈 Kubernetes 的起源?
答案 →
•Kubernetes 的起源可以追溯到谷歌的内部容器编排系统 BORG。
![Kubernetes:解读轻松管理容器化应用的奇妙世界 Kubernetes:解读轻松管理容器化应用的奇妙世界](http://www.zzvips.com/uploads/allimg/b86d36222bd924f3.jpg)
•这个系统管理了谷歌内部数千个应用程序的部署。
![Kubernetes:解读轻松管理容器化应用的奇妙世界 Kubernetes:解读轻松管理容器化应用的奇妙世界](http://www.zzvips.com/uploads/allimg/3911a3ab21c2b4bd.jpg)
•在 2014 年,谷歌开源了 BORG 的一个版本,即 Kubernetes。
问题:Kubernetes 的简称是什么?
答案 →它也被称为k8s。
![Kubernetes:解读轻松管理容器化应用的奇妙世界 Kubernetes:解读轻松管理容器化应用的奇妙世界](http://www.zzvips.com/uploads/allimg/509ec945ccccb702.jpg)
问题:详细解释一些关于 Kubernetes 的细节?
答案 →一个 k8s 集群是一组被称为节点的机器。这些节点用于运行容器化应用程序。
![Kubernetes:解读轻松管理容器化应用的奇妙世界 Kubernetes:解读轻松管理容器化应用的奇妙世界](http://www.zzvips.com/uploads/allimg/e83c21000875471f.jpg)
在 k8s 集群中有两个核心部分:
组件 #1.)控制平面(Control-Pane)→它负责管理集群的状态。
![Kubernetes:解读轻松管理容器化应用的奇妙世界 Kubernetes:解读轻松管理容器化应用的奇妙世界](http://www.zzvips.com/uploads/allimg/45148010367b8533.jpg)
在生产环境中,控制平面通常运行在跨越多个数据中心区域的多个节点上。
![Kubernetes:解读轻松管理容器化应用的奇妙世界 Kubernetes:解读轻松管理容器化应用的奇妙世界](http://www.zzvips.com/uploads/allimg/795eec95b8214a8f.jpg)
组件 #2.)工作节点(Worker-Nodes)→ 这些节点运行容器化应用程序工作负载。容器化应用程序在 Pod 中运行。
![Kubernetes:解读轻松管理容器化应用的奇妙世界 Kubernetes:解读轻松管理容器化应用的奇妙世界](http://www.zzvips.com/uploads/allimg/1ba5f20fbf750fcd.jpg)
问题:Kubernetes 中的 Pod 是什么?
答案 →Pod 是 Kubernetes 中最小的可部署单元。
•一个 Pod 托管一个或多个容器,并为这些容器提供共享的存储和网络。•Pod 由 Kubernetes 控制平面创建和管理。这是 Kubernetes 应用程序的基本构建块。
![Kubernetes:解读轻松管理容器化应用的奇妙世界 Kubernetes:解读轻松管理容器化应用的奇妙世界](http://www.zzvips.com/uploads/allimg/e707abe4cedba5e8.jpg)
问题:详细解释 Kubernetes 中的控制平面?
答案 →Kubernetes 控制平面的主要组件包括:
组件 #1.) API 服务器(API-Server)→它是控制平面与集群其余部分之间的主要接口。它暴露了一个 RESTful API,允许客户端与控制平面交互并提交请求以管理集群。
![Kubernetes:解读轻松管理容器化应用的奇妙世界 Kubernetes:解读轻松管理容器化应用的奇妙世界](http://www.zzvips.com/uploads/allimg/25034a32bb1199ec.jpg)
组件 #2.) etcd →
•它代表分布式键值存储。
![Kubernetes:解读轻松管理容器化应用的奇妙世界 Kubernetes:解读轻松管理容器化应用的奇妙世界](http://www.zzvips.com/uploads/allimg/794b7a6069236567.jpg)
•它存储集群的持久状态。
![Kubernetes:解读轻松管理容器化应用的奇妙世界 Kubernetes:解读轻松管理容器化应用的奇妙世界](http://www.zzvips.com/uploads/allimg/b6859854938c6b23.jpg)
•它被 API 服务器和控制平面的其他组件用于存储和检索有关集群的信息。
![Kubernetes:解读轻松管理容器化应用的奇妙世界 Kubernetes:解读轻松管理容器化应用的奇妙世界](http://www.zzvips.com/uploads/allimg/7b180f2327ee45d0.jpg)
组件 #3.) 调度器(Scheduler)→它负责将 Pod 调度到集群中的工作节点上。它使用有关 Pod 需要的资源和工作节点上可用资源的信息来进行放置决策。
![Kubernetes:解读轻松管理容器化应用的奇妙世界 Kubernetes:解读轻松管理容器化应用的奇妙世界](http://www.zzvips.com/uploads/allimg/93dd7835221bcfd8.jpg)
组件 #3.) 控制器管理器(Controller Manager)→它负责运行管理集群状态的控制器。一些示例包括:
•复制控制器(Replication Controller)→确保 Pod 的期望副本数量正在运行。
![Kubernetes:解读轻松管理容器化应用的奇妙世界 Kubernetes:解读轻松管理容器化应用的奇妙世界](http://www.zzvips.com/uploads/allimg/026df76e162e3a60.jpg)
•部署控制器(Deployment Controller)→管理部署的滚动更新和回滚。
组件 #4.) 工作节点(Worker Nodes)→运行在工作节点上的核心组件包括:
•Kubelet →这是在每个工作节点上运行的守护程序。它负责与控制平面通信。它接收来自控制平面的有关在节点上运行哪些 Pod 以及确保 Pod 的期望状态得到维护的指令。
![Kubernetes:解读轻松管理容器化应用的奇妙世界 Kubernetes:解读轻松管理容器化应用的奇妙世界](http://www.zzvips.com/uploads/allimg/e787c640d30d539e.jpg)
•容器运行时(Container-Runtime)→这在工作节点上运行容器。它负责从注册表拉取容器镜像、启动和停止容器以及管理容器的资源。
![Kubernetes:解读轻松管理容器化应用的奇妙世界 Kubernetes:解读轻松管理容器化应用的奇妙世界](http://www.zzvips.com/uploads/allimg/5885624f01c88ab9.jpg)
•Kube-Proxy →这是在每个工作节点上运行的网络代理。它负责将流量路由到正确的 Pod,为 Pod 提供负载均衡,并确保流量均匀分布到各个 Pod。
![Kubernetes:解读轻松管理容器化应用的奇妙世界 Kubernetes:解读轻松管理容器化应用的奇妙世界](http://www.zzvips.com/uploads/allimg/913a347d5473cd68.jpg)
问题:使用 Kubernetes 的优势是什么?
答案 →使用 Kubernetes 有以下优势:
•功能池 →Kubernetes 是可扩展和高可用的。它提供自愈、自动回滚和水平扩展等功能。
![Kubernetes:解读轻松管理容器化应用的奇妙世界 Kubernetes:解读轻松管理容器化应用的奇妙世界](http://www.zzvips.com/uploads/allimg/e43878db62fb6cea.jpg)
•简便扩展 →它使我们能够根据需要轻松扩展应用程序,让我们能够快速响应需求变化。
![Kubernetes:解读轻松管理容器化应用的奇妙世界 Kubernetes:解读轻松管理容器化应用的奇妙世界](http://www.zzvips.com/uploads/allimg/5093c398f94ac48c.jpg)
•Kubernetes 是可移植的 →它帮助我们以一种一致可靠的方式部署和管理应用程序,而不受底层基础设施的影响。它可以在本地部署、公共云中或混合环境中运行。它提供了一种统一的方式来打包、部署和管理应用程序。
![Kubernetes:解读轻松管理容器化应用的奇妙世界 Kubernetes:解读轻松管理容器化应用的奇妙世界](http://www.zzvips.com/uploads/allimg/3d5c2e614e8ccd90.jpg)
问题:使用 Kubernetes 的劣势是什么?
答案 →使用 Kubernetes 有以下劣势:
•复杂性 →设置和操作都非常复杂。
![Kubernetes:解读轻松管理容器化应用的奇妙世界 Kubernetes:解读轻松管理容器化应用的奇妙世界](http://www.zzvips.com/uploads/allimg/476ca9f44d26ef11.jpg)
•高成本 →初期成本高,特别是对于新接触容器化的组织。为了支持上述所有功能,需要一定程度的资源。
![Kubernetes:解读轻松管理容器化应用的奇妙世界 Kubernetes:解读轻松管理容器化应用的奇妙世界](http://www.zzvips.com/uploads/allimg/1145f909995e570e.jpg)
•高水平的专业知识 →需要高水平的专业知识和资源来设置和管理生产环境的 Kubernetes。对于许多小型组织来说可能会显得过度庞大。
问题:如何简化 Kubernetes 的管理?
答案 →一个流行的选择是将控制平面的管理外包给托管 Kubernetes 服务:
![Kubernetes:解读轻松管理容器化应用的奇妙世界 Kubernetes:解读轻松管理容器化应用的奇妙世界](http://www.zzvips.com/uploads/allimg/e3a64257b63bb2d0.jpg)
这些服务允许组织在不必担心底层基础设施的情况下运行在 Kubernetes 上的应用程序。
![Kubernetes:解读轻松管理容器化应用的奇妙世界 Kubernetes:解读轻松管理容器化应用的奇妙世界](http://www.zzvips.com/uploads/allimg/a2469d751520780f.jpg)
这些服务负责需要深度专业知识的任务,比如设置和配置控制平面、扩展集群以及提供持续的维护和支持。
![Kubernetes:解读轻松管理容器化应用的奇妙世界 Kubernetes:解读轻松管理容器化应用的奇妙世界](http://www.zzvips.com/uploads/allimg/f8a51bf69829f591.jpg)
这样,对于较小的组织来说,试用 Kubernetes 就会相对简单一些。