简析Kubernetes八大重要特性

ce957be08ed4302e96f237f906f1d8ae.gif

导读:Kubernetes是一种可自动实施Linux容器编排的开源平台。Kubernetes(希腊语,意为“舵手”或“飞行员”)又称k8s,由Google在2014年首次对外发布。

作者:马永亮

来源:大数据DT(ID:hzdashuju)

e79147480cfa85f296724aad41a0213b.png

Kubernetes的主要优势在于,它提供了一个便捷有效的平台,让用户可以在物理机和虚拟机集群上调度与运行容器。进一步来说,Kubernetes是一个支持弹性运行的分布式系统框架,是一种支撑其他平台的平台型基础设施,可以帮助用户在生产环境中依托容器实施的基础架构。

Kubernetes的本质在于实现操作任务自动化,包括应用扩展、故障转移和部署模式等,因而它能代替用户执行大部分烦琐的操作任务,减轻用户负担,降低出错的概率。

简言之,Kubernetes整合并抽象了底层的硬件和系统环境等基础设施,对外提供了一个统一的资源池供终端用户通过API进行调用。Kubernetes具有以下几个重要特性。

01 自动装箱

构建于容器之上,基于资源依赖及其他约束自动完成容器部署且不影响其可用性,并在同一节点通过调度机制混合运行关键型应用和非关键型应用的工作负载,以提升资源利用率。

02 自我修复(自愈)

支持容器故障后自动重启、节点故障后重新调度容器到其他可用节点、健康状态检查失败后关闭容器并重新创建等自我修复机制。

03 水平扩展

支持通过简单命令或UI手动水平扩展,以及基于CPU等资源负载率的自动水平扩展机制。

04 服务发现和负载均衡

Kubernetes通过其附加组件之一的KubeDNS(或CoreDNS)为系统内置了服务发现功能,它会为每个Service配置DNS名称,并允许集群内的客户端直接使用此名称发出访问请求,而Service通过iptables或ipvs内置了负载均衡机制。

05 自动发布和回滚

Kubernetes支持“灰度”更新应用程序或其配置信息,它会监控更新过程中应用程序的健康状态,以确保不会在同一时刻杀掉所有实例,而此过程中一旦有故障发生,它会立即自动执行回滚操作。

06 密钥和配置管理

Kubernetes的ConfigMap实现了配置数据与Docker镜像解耦,需要时,仅对配置做出变更而无须重新构建Docker镜像,这为应用开发部署提供了很大的灵活性。

此外,对于应用所依赖的一些敏感数据,如用户名和密码、令牌、密钥等信息,Kubernetes专门提供了Secret对象使依赖解耦,既便利了应用的快速开发和交付,又提供了一定程度上的安全保障。

07 存储编排

Kubernetes支持Pod对象按需自动挂载不同类型存储系统,这包括节点本地存储、公有云服务商的云存储(如AWS和GCP等),以及网络存储系统,例如NFS、iSCSI、Gluster、Ceph、Cinder和Flocker等。

08 批量处理执行

除了服务型应用,Kubernetes还支持批处理作业、CI(持续集成),以及容器故障后恢复。

另一方面,以应用为中心的Kubernetes本身并未直接提供一套完整的“开箱即用”的应用管理体系,需要基础设施工程师基于云原生社区和生态的实际需求手动构建。

换句话说,在典型的生产应用场景中,Kubernetes还需要同网络、存储、遥测(监控和日志)、镜像仓库、负载均衡器、CI/CD工具链及其他服务整合,以提供完整且API风格统一的基础设施平台,如图1-17所示。

92ccc0881117001d068a24c997b0539d.png

▲图1-17 完整的容器编排系统

下面对容器编排系统中的要素进行简单介绍。

  • Docker Registry和工件仓库:通过Harbor工件仓库、Docker Registry等项目实现。

  • 网络:借助Flannel、Calico或WeaveNet等项目实现。

  • 遥测:借助Prometheus和EFK栈(或者由Promtail、Loki和Grafana组成的PLG栈)等项目实现。

  • 容器化工作负载:借助Kubernetes内置的工作负载控制器资源,甚至由社区扩展而来的各种Operator完成应用的自动化编排,包括自愈和自动扩缩容等;而便捷的应用打包则要借助Helm或Kustomize等项目完成。

  • 基于容器编排系统的CI/CD:借助Jenkins、Tekton、Flagger或Kepton等项目,甚至遵循GitOps规范实现应用交付、发布和部署等。

关于作者:马永亮,北京马哥教育科技有限公司,创始人兼CEO。精通泛Linux运维领域相关技术,关注容器领域相关技术。

本文摘编自《Kubernetes进阶实战(第2版)》,经出版方授权发布。

(ISBN:9787111694441)

f5f1668155fe00ca91354d4b16dc0635.png

延伸阅读《Kubernetes进阶实战(第2版)》

点击上图了解及购买

转载请联系微信:DoctorData

推荐语:马哥教育CEO撰写,涵盖Kubernetes全新特性与功能,渐进式讲解,大量实操案例,随时动手验证。

e897878bf57cbb314e0c7e6af07c65ad.png

215b28715e2bf28dde315d72044d69dd.gif

刷刷视频👇

8b46155da327d4dc77524701052656ed.gif

36377f291f067dde9d2aef983e3a6161.png

扫码关注【CSAPP】视频号

f02138854229db998fc3d7b5060333c1.gif

更多精彩回顾

书讯 | 12月书讯(上) | 冬夜寒冷,读书暖心,华章科技上新啦!

书讯 | 12月书讯(下) | 冬夜寒冷,读书暖心,华章科技上新啦!

资讯 | 科普两个著名人工智能思想实验:图灵测试和中文房间

书单 | 为什么 Rust 是编程的未来?

干货 | 多角度展现 Linux 集群之美

收藏 | 测试开发必备技能,你达标了吗?

上新 | 【新书速递】龙芯开源LoongArch版,学会造计算机!

赠书 | 【第84期】对话智能风控

84dfe1ac2afab49ccdd6eaac2754cb00.gif

6463ccd52a7cabf708b733bdbd150f22.gif

点击阅读全文购买

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值