第 3 章 获取 Kubernetes 获取 Kubernetes
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
困惑是知识的开端。
卡希尔-纪伯伦
Kubernetes 是云原生世界的操作系统,为运行容器化工作负载提供了一个可靠、可扩展的平台。但应该如何运行 Kubernetes?应该自己托管吗?在云实例上?在裸机服务器上?还是使用托管的 Kubernetes 服务?还是使用基于 Kubernetes,但通过工作流工具、仪表板和 Web 界面进行扩展的托管平台?
这一章要回答的问题太多了,但我们会尽力回答。
值得注意的是,我们在这里不会特别关注操作 Kubernetes 本身的技术细节,比如构建、调整和故障排除集群。有很多优秀的资源可以帮助你解决这些问题,其中我们特别推荐布伦丹-伯恩斯(Brendan Burns)和克雷格-特雷西(Craig Tracey)的《管理 Kubernetes》(Managing Kubernetes)一书:在现实世界中操作 Kubernetes 集群》(O'Reilly)一书。
相反,我们将重点帮助您了解集群的基本架构,并为您提供决定如何运行 Kubernetes 所需的信息。我们将概述托管服务的利弊,并介绍一些流行的供应商。
如果你想运行自己的 Kubernetes 集群,我们列出了一些可用的最佳安装工具,帮助你建立和管理集群。
集群架构
你知道 Kubernetes 将多个服务器连接成一个集群,但什么是集群,它又是如何工作的呢?就本书而言,技术细节并不重要,但你应该了解 Kubernetes 的基本组件以及它们是如何组合在一起的,这样才能明白在构建或购买 Kubernetes 集群时,你有哪些选择。
控制平面
集群的大脑被称为控制平面,它运行 Kubernetes 工作所需的所有任务:调度容器、管理服务、服务 API 请求等(见图 3-1)。
图 3-1. Kubernetes 集群的工作原理
控制平面实际上由几个部分组成:
kube-apiserver-
这是控制平面的前端服务器,负责处理 API 请求。
etcd-
这是 Kubernetes 存储其所有信息的数据库:存在哪些节点、集群上存在哪些资源等。
kube-scheduler-
这决定了在哪里运行新创建的 Pod。
kube-controller-manager-
它负责运行资源控制器,如部署。
cloud-controller-manager-
它与云提供商(在基于云的集群中)互动,管理负载平衡器和磁盘卷等资源。
生产集群中的控制平面组件通常在多个服务器上运行,以确保高可用性。
节点组件
运行用户工作负载的集群成员称为工作节点。
Kubernetes 集群中的每个工作节点都运行这些组件:
kubelet-
它负责驱动容器运行时启动节点上调度的工作负载,并监控其状态。
kube-proxy-
它可以在不同节点上的 Pod 之间以及 Pod 与互联网之间路由请求。
- 容器运行时间
-
这实际上是启动和停止容器,并处理它们之间的通信。一直以来,最流行的选择是 Docker,但 Kubernetes 也支持其他容器运行时,如containerd和CRI-O
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access