写点什么

Kubernetes 方法论:扩容和可靠性

  • 2020-03-11
  • 本文字数:2046 字

    阅读完需:约 7 分钟

Kubernetes方法论:扩容和可靠性

在第一篇文章里,我们探索了在 Kubernetes 中 pods 和 services 的概念。现在,我们来理解一下如何用 RC 来完成弹性扩容以及可靠性。我们也会讨论一下如何将持久化带入布置在 Kubernetes 上的云本地应用程序。

RC:弹性扩容和管理微服务

如果 pods 是一个单元,部署和 services 是抽象层,那么谁来追踪 pods 的健康状况呢?


于是 RC 就这样出场了。


在 pods 被部署之后,他们需要扩容,需要被追踪。RC 定义文件有 pods 数量的基线配置,这些 pods 在任何给定的点都是可得的。Kubernetes 确保了需要的配置选项一直通过追踪 pods 数量来维护。它会杀死一些 pods,又或者是创建一些来满足基线配置。


RC 可以追踪 pods 的健康状况。如果一个 pod 变得难得到的,那么它就会被杀死,然后一些新的 pod 会被创建。因为一个 RC 实质上就是继承了 pod 的定义,YAML 或者 JSON 清单可能包含重启策略,容器调查和健康检查端点的属性。


Kubernetes 支持基于 CPU 利用率的 pod 自动弹性扩容,跟 EC2 自动扩容或者 GCE 自动扩容有些相似。在运行的时候,RC 可以被操作来自动扩容 pods,基于特定的 CPU 利用率阈值。pods 的数量的最大值和最小值也可以在同样的命令下规定。

平网络:秘密武器

网络也是容器化过程中面临的复杂挑战之一。将一个容器暴露到外部世界的唯一方法就是通过主机的端口转发。但是扩容容器的时候就会变得复杂。Kubernetes 不是将网络配置和集成留给管理员来做,而是自带一个网络模型,这个网络模型十分易于使用。


每个节点,service,pod 和容器都有一个 IP 地址。节点的 IP 地址由物理路由器分配;结合分配的端口,它会变成端点来访问面向服务。虽然不是可路由的,但是 Kubernetes 服务也是可以获取 IP 地址的。所有的通信都是在没有 NAT 层的基础上产生的,使得网络平面化,透明化。


这个模型会带来一些好处:


  • 所有的容器不需要 NAT 也可以互相通信

  • 所有的节点不需要 NAT 也可以跟所有的 pods 和集群中的容器通信

  • 每个容器跟其他容器一样看到的都是相同的 IP 地址

  • 关于通过 RS 来扩容 pods 最好的一点就是,端口映射是由 Kubernetes 处理的。所有属于 service 的 pods 都是通过相同的端口暴露到每个节点上的。即使没有 pod 在特定的节点上调度,request 也会自动转发到合适的节点。

  • 这个神奇的功能就是通过 kube-proxy,iptables 和 etcd 这些网络代理的结合来实现的。当前集群的状态就是用 etcd 来维护的,这也就意味着在运行的时候通过 kube-proxy 查询。通过操作在每个节点上的 iptables,kube-proxy 将 request 退信到正确的目的地。

  • Kube-proxy 同样也处理 services 的基础负载均衡。Service 端点也是用 Docker links 通过环境变量来管理。这些变量分解到端口,端口通过 service 暴露到外面。Kubernetes1.1 包括了一个来使用本地 iptables 的选项,这个选项会带来 80%的延迟。这个设计消除了 CPU 开销,因此提升了效率,也提升了可拓展性。

持久性:将状态带到容器

容器是短暂的。当他们从一个主机转移到另一个主机的时候,他们不包含状态。对于产品负载,持久是一个必须条件。任意有用的应用程序都有一个数据库在背后支持它。


默认设置下,pods 也是短暂的。他们每次复活的时候都从空白状态开始。设置在同一个 pod 中运行的容器所共享的数据卷也是可以的。由 emptyDir monilker 确认,这个与 Docker 数据卷有点相似,在这里主机文件系统在容器内被暴露为一个目录。emptyDir 数据卷追踪 pods 的生命周期。当 pod 被删除的时候,数据卷也会被删除掉。因为这些数据卷只符合主机的,所以他们在其它节点上不可用。


为了在 pods 上带来持久性数据,不管他们在哪个节点上被调度,Kubernetes 都支持 PV 和 PVC requests。PVC 和 PV 共享关系,就如同 pod 和节点一样。当一个 pod 被创建的时候,它可以通过 claim 联系到特定数据卷。PV 可以基于各种各样的插件,比如 GCE 持久性硬盘,亚马逊弹性快存储(EBS),网络文件系统(NFS),小型计算机系统接口(ISCSI),GlusterFS 和 RBD。


设置持久化的工作流包括配置底层文件系统或者云数据卷,创建持久性数据卷,最后,创建 claim 来将 pod 跟数据卷关联起来。这个解耦方法可以将 pod 和数据卷完全分离,或者 pod 不需要知道确切的文件系统或者支持它的持久性引擎。有些文件系统,比如 GlusterFS,也可以被容器化,使得配置更加容易,便捷。

结论

容器已经不是一个新型的概念了,谷歌数十年来都将它大部分网络规模的工作负载都放在容器中运行。他们在这个过程中吸取教训,并将这些教训融入 Kubernetes 的建设中,这些经验教训也可以被移植到其他的编排平台中,也可以移植到其它的编排工具中。Kubernetes 早在十年前就已经解决了谷歌 SRE 面对的难题,这些正在影响着容器编排工具前进的道路。


最重要的是,Kubernetes 在容器生态圈已经是一个焦点,对于其它相关服务,它的存在就好像是一个有价值的开源平台。理解 Kubernetes 目前的角色和作用对于编排工具市场是十分有必要的。


本文转载自才云 Caicloud 公众号。


原文链接:https://mp.weixin.qq.com/s/SW0ciOA9k7HUu4kLPxqM-w


2020-03-11 19:49974

评论

发布
暂无评论
发现更多内容

根服务器之殇:中国互联网的“阿喀琉斯之踵”

防火墙后吃泡面

“一课双证”Scrum Better with Kanban 认证&Scrum看板实践者认证 |

ShineScrum

Kanban 看板

非凸科技鼎力支持第50届ICPC亚洲区域赛·武汉站,携手共育计算机英才

非凸科技

“格物”平台V2.1 | 让全同态密码应用开发更高效

密流智能

隐私保护 数据安全 全同态加密 密文计算 数据可用不可见

中文语音识别,“讯飞系”对比“苹果系”的胜负手

新消费日报

iBarcoder for Mac 条形码生成工具

做梦万元户

“敏捷产品管理精进课程” 2026年3月14-15日 · A-CSPO认证【提前报名特惠】

ShineScrum

产品 CSPO认证

如何构建可信智能 Data Agent?推荐 Aloudata Agent 分析决策智能体

Aloudata

数据分析 ChatBI 智能问数 dataagent

2025《财富》中国500强峰会在上海圆满落幕

科技经济

Aspect Ratio X for Mac 专业比例计算工具

做梦万元户

第三方物流接口优选:快递鸟物流 API,打破单一快递对接壁垒

快递鸟

汽车与机器人产业加速融合,聚焦技术同源共探协同新路径

科技经济

“团队敏捷教练进阶课程” 2026年1月24-25日 ·在线A-CSM认证

ShineScrum

CSM认证 A-CSM 敏捷认证

AI 与我的边界

田威AI

AI

Vibe Coze-企业 AI 应用赛道开启

火山引擎开发者社区

让AI替你写用例!Dify+RAG工作流,一键生成覆盖率达90%的测试方案

测吧(北京)科技有限公司

多智能体设计模式和智能体框架,你会了么?

京东科技开发者

国泰君安基于隐语SecretFlow生产场景探索实践

隐语SecretFlow

sql 数据分析 隐私计算 开源隐私计算框架

"催化型领导力(Catalyst Leadership)"-敏捷领导者CAL1认证 · 2026年3月21-22日(周末班)

ShineScrum

敏捷领导力

Doris 高速查询背后的秘密:如何用 ETL 工具提升数据导入效率

谷云科技RestCloud

数据库 postgresql Doris ETL 数据集成工具

IDC中国集成平台技术评估报告,谷云科技iPaaS平台获八项满分

谷云科技RestCloud

IDC 集成平台 ipaas

DataWorks Agent 正式发布!对话即开发,AI Agent 重新定义数据生产力

阿里云大数据AI技术

阿里云 数据开发 agent Dataworks

成功案例丨平衡性能与安全的仿真:Altair助力 STARD 优化赛车空间车架设计

Altair RapidMiner

人工智能 AI 汽车 仿真 CAE

ATT&CK v18发布:别只更新PPT,更要升级检测逻辑

塞讯科技

ATT&CK

低代码报表设计全流程:从新建到菜单发布,多版本 + 导入导出一次搞定

引迈信息

Mp3tag for Mac 音频标签编辑器

做梦万元户

最新MCP规范解读,看这篇就够了!

京东科技开发者

【原理到实战】实验异质性分析

京东科技开发者

ForkLift For Mac 双窗口文件管理和FTP管理软件

做梦万元户

西格电力智慧能源管理平台——算法如何优化调度?

西格电力

智慧能源 能源管理系统 智慧能源管理系统

安卓iOS原生开发后台Java 即时通讯IM聊天系统功能简介

山东布谷网络科技

IM 即时通讯IM im即时通讯软件开发 IM源码

Kubernetes方法论:扩容和可靠性_文化 & 方法_才云科技_InfoQ精选文章