Kubernetes——K8s概述和特性

学习 Kubernetes 的前置知识:Linux 和 Docker


1、K8s 的概述

什么是 Kubernetes

Kubernetes Operator例子 kubernetes简介_服务发现

kubernetes,简称 K8s,是用8代替8个字符 “ubernete” 而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效,Kubernetes 提供了应用部署,规划,更新,维护的一种机制。

Kubernetes 是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。

Google 在 2014 年开源了 Kubernetes 项目,Kubernetes 是Google 10多年大规模容器管理技术Borg的开源版本。

Kubernetes 建立在 Google 在大规模运行生产工作负载方面拥有十几年的经验的基础上,结合了社区中最好的想法和实践。

Kubernetes 拥有一个庞大且快速增长的生态系统。

通过Kubernetes你可以:

  • 快速部署应用
  • 快速扩展应用
  • 无缝对接新的应用功能
  • 节省资源,优化硬件资源的使用

2、K8s 的特性

  • 自动装箱
    基于容器对应用运行环境的资源配置要求自动部署应用容器
  • 水平扩展
    通过简单的命令、用户UI界面或基于CPU等资源使用情况,对应用容器进行规模扩大或规模剪裁
  • 服务发现和负载均衡
    Kubernetes 可以使用 DNS 名称或自己的 IP 地址公开容器,如果进入容器的流量很大, Kubernetes 可以负载均衡并分配网络流量,从而使部署稳定。
    用户不需要使用额外的服务发现机制,就能够基于 Kubernetes 自身能力实现服务发现和负载均衡。
  • 滚动更新
    可以根据应用的需求变化,对应用容器运行中的应用,进行一次性或批量次的更新。
  • 存储编排
    Kubernetes 允许你自动挂载你选择的存储系统,例如本地存储、公共云提供商等。
  • 版本回退
    可以根据应用部署情况,对应用容器运行的应用,进行历史版本即时回退。
  • 自动完成装箱计算
    Kubernetes 允许你指定每个容器所需 CPU 和内存(RAM)。 当容器指定了资源请求时,Kubernetes 可以做出更好的决策来管理容器的资源。
  • 自我修复(自愈能力)
    当容器失败时,Kubernetes会对容器进行重启;
    当所部署的 Node 节点有问题时,会对容器进行重新部署和调度;
    当容器未通过监控检查时,会关闭此容器直到正常运行(完全启动)时,才会对外提供服务。
    密钥与配置管理
  • Kubernetes 允许你存储和管理敏感信息,例如密码、OAuth 令牌和 ssh 密钥。 你可以在不重建容器镜像的情况下部署和更新密钥和应用程序配置,也无需在堆栈配置中暴露密钥。类似于热部署。
  • 存储编排
    自动实现存储系统挂载及应用,特别对有状态应用实现数据持久化非常重要;
    存储系统可以来自于本地目录、网络存储(NFS、Gluster、Ceph等)、公热云存储服务。
  • 批处理
    提供一次性任务,定时任务;满足批量数据处理和分析的场景。