Skip to content

Kubernetes (K8S) 是什么

它是一个为 容器化 应用提供集群部署和管理的开源工具,由 Google 开发。 Kubernetes 这个名字源于希腊语,意为“舵手”或“飞行员”。k8s 这个缩写是因为 k 和 s 之间有八个字符的关系。 Google 在 2014 年开源了 Kubernetes 项目

主要特性:

  • 高可用,不宕机,自动灾难恢复
  • 灰度更新,不影响业务正常运转
  • 一键回滚到历史版本
  • 方便的伸缩扩展(应用伸缩,机器加减)、提供负载均衡
  • 有一个完善的生态

k8s是一个平台框架

k8s提供了很多的功能,简化了对容器的部署管理;

  • 基于容器对应用的发布管理、更新、升级、降级;
  • 负载均衡、服务发现
  • 跨机器、跨地区的网络模式。自动扩缩容功能
  • 针对如nginx无状态服务的运行组件、如mysql等有状态服务的运行组件
  • 支持丰富的插件

k8s并不是包罗万象的,它本身只有自己的一些组件,而其他功能,如消息队列,数据库,存储等都需要额外安装在k8s上

什么时候需要 Kubernetes?

当你的应用只是跑在一台机器,直接一个 docker + docker-compose 就够了,方便轻松; 当你的应用需要跑在 3,4 台机器上,你依旧可以每台机器单独配置运行环境 + 负载均衡器; 当你应用访问数不断增加,机器逐渐增加到十几台、上百台、上千台时,每次加机器、软件更新、版本回滚,都会变得非常麻烦、痛不欲生,再也不能好好的摸鱼了,人生浪费在那些没技术含量的重复性工作上。 这时候,Kubernetes 就可以一展身手了,让你轻松管理百万千万台机器的集群。“谈笑间,樯橹灰飞烟灭”,享受着一手掌控所有,年薪百万指日可待。 Kubernetes 可以为你提供集中式的管理集群机器和应用,加机器、版本升级、版本回滚,那都是一个命令就搞定的事,不停机的灰度更新,确保高可用、高性能、高扩展

重要概念 Pod

豆荚,K8S 调度、管理的最小单位,一个 Pod 可以包含一个或多个容器,每个 Pod 有自己的虚拟IP。一个工作节点可以有多个 pod,主节点会考量负载自动调度 pod 到哪个节点运行。

Kubernetes 组件

  • kube-apiserver API 服务器,公开了 Kubernetes API
  • etcd 键值数据库,可以作为保存 Kubernetes 所有集群数据的后台数据库
  • kube-scheduler 调度 Pod 到哪个节点运行
  • kube-controller 集群控制器
  • cloud-controller 与云服务商交互

所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自linlink~文档