52 | 容器海洋中的舵手:Kubernetes工作机制
郑建勋
你好,我是郑建勋。
上节课的最后我们提到,对于大规模的线上分布式微服务项目,在实践中,我们会选择 Kubernetes 作为容器编排的工具,它是云原生时代容器编排领域的霸主。这节课,让我们来看看 Kubernetes 的基本原理。
什么是 Kubernetes?
Kubernetes 这个名字来自希腊语,意思是舵手。它可以自动部署、扩容和管理容器化应用程序。Kubernetes 从谷歌内部对大规模容器的排版(Orchestration)中吸取经验,以谷歌内部的 Borg 和 Omega 系统为设计灵感。2014 年,Kubernetes 已经被贡献给了云原生计算基金会(CNCF,Cloud Native Computing Foundation),成为了开源项目。
和操作系统抽象了单机的资源并调度了应用程序相似,Kubernetes 是云原生时代的操作系统,它抽象了多台机器的资源,并完成了资源的灵活调度,这使我们能够轻松地管理大规模的集群。
从架构上讲,Kubernetes 的节点分为了两个部分:管理节点和工作节点。管理节点上运行的是控制平面组件,而工作节点上运行的是业务服务。
管理节点上运行的控制平面组件主要包括下面这些服务。
API Server
API Server 是 Kubernetes 组件之间,以及 Kubernetes 与外界沟通的桥梁。外部客户端(例如 kubectl)需要通过 API Server 暴露的 RESTful API 查询和修改集群状态,API Server 会完成认证与授权的功能。同时,API Server 是唯一与 etcd 通信的组件,其他组件要通过与 API 服务器通信来监听和修改集群状态。
etcd
etcd 为集群中的持久存储,Kubernetes 中的众多资源(Pod、ReplicationControllers、Services、Secrets )都需要以持久的方式存储在 etcd 中,这样它们就可以实现故障的容错了。
Controller Manager
Controller Manager 生成并管理众多的 Controller。Controller 的作用是监控感兴趣的资源的状态,并维持服务的状态与期望的状态相同。核心的 Controller 包括 Deployment Controller, StatefulSet Controller 和 ReplicaSet Controller。
Scheduler
Scheduler 为 Kubernetes 的调度器,它通过 API Server 监听资源的变化。当需要创建新的资源时,它负责将资源分配给最合适的工作节点。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
Kubernetes是云原生时代的容器编排领域的霸主,其名字来自希腊语,意为舵手。文章介绍了Kubernetes的基本原理和工作机制。Kubernetes作为云原生时代的操作系统,抽象了多台机器的资源,并完成了资源的灵活调度,使得能够轻松地管理大规模的集群。文章详细介绍了Kubernetes的架构,包括管理节点和工作节点上运行的控制平面组件和业务服务,以及Pod作为资源调度的基本单位。此外,文章还介绍了Kubernetes网络的规范和解决方案,包括CNI容器网络规范和Service、Ingress等资源类型的使用。总的来说,Kubernetes通过API Server完成资源的监听,而不直接访问etcd,这是因为API Server是唯一与etcd通信的组件,其他组件需要通过与API Server通信来监听和修改集群状态。这篇文章为读者提供了对Kubernetes工作机制的深入了解,为进一步学习和实践Kubernetes奠定了基础。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Go 进阶 · 分布式爬虫实战》,新⼈⾸单¥68
《Go 进阶 · 分布式爬虫实战》,新⼈⾸单¥68
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(2)
- 最新
- 精选
- 出云思考题,补充一点:解耦。2023-04-29归属地:广东
- Realm思考题: 1 走api,可以统一进行认证、鉴权; 2 标准化 3 我为人人,人人为我;2023-02-09归属地:浙江
收起评论