Kubernetes——K8s概述和特性
学习 Kubernetes 的前置知识:Linux 和 Docker
1、K8s 的概述
什么是 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等)、公热云存储服务。 - 批处理
提供一次性任务,定时任务;满足批量数据处理和分析的场景。