Kubernetes(简称K8s)是什么?
一、Kubernetes是什么?
Kubernetes,简称K8s,是用8代替名字中间的8个字符“ubernete”而成的缩写。Kubernetes是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化,它的服务、支持和工具广泛可用。
Kubernetes这个名字源于希腊语,意为“舵手”或“飞行员”。k8s 这个缩写是因为 k 和 s 之间有八个字符的关系。 Google在2014年开源了Kubernetes项目。Kubernetes建立在Google大规模运行生产工作负载方面拥有十几年的经验 的基础上,结合了社区中最好的想法和实践,可以自由地部署在企业内部,私有云、混合云或公有云。
二、Kubernetes的主要特性
1、服务发现与负载均衡
Kubernetes可以使用DNS名称或自己的IP地址公开容器,如果进入容器的流量很大,Kubernetes可以负载均衡并分配网络流量,从而使部署稳定。
2、自动化上线和回滚
你可以使用Kubernetes描述已部署容器的所需状态,它可以以受控的速率将实际状态更改为期望状态。例如,你可以自动化Kubernetes来为你的部署创建新容器, 删除现有容器并将它们的所有资源用于新容器。
3、存储编排
Kubernetes允许你自动挂载你选择的存储系统,包括本地存储、诸如GCP或AWS之类公有云提供商所提供的存储或者诸如 NFS、iSCSI、Gluster、Ceph、Cinder或Flocker这类网络存储系统。
4、Secret(密钥)与配置管理
Kubernetes允许你存储和管理敏感信息,例如密码、OAuth令牌和SSH密钥。你可以在不重建容器镜像的情况下部署和更新密钥和应用程序配置,也无需在堆栈配置中暴露密钥。
5、自动完成装箱计算
Kubernetes允许你指定每个容器所需CPU和内存(RAM)。当容器指定了资源请求时,Kubernetes可以做出更好的决策来管理容器的资源,将关键性工作负载和尽力而为性质的服务工作负载进行混合放置,以提高资源利用率并节省更多资源。
6、批量执行
除了服务之外,Kubernetes还可以管理你的批处理和 CI 工作负载,在期望时替换掉失效的容器。
7、IPv4/IPv6 双协议栈
Kubernetes为Pod和Service分配IPv4和IPv6地址。
8、水平扩缩
使用一个简单的命令、一个 UI 或基于 CPU 使用情况自动对应用程序进行扩缩。
9、自我修复
重新启动失败的容器,在节点死亡时替换并重新调度容器,杀死不响应用户定义的健康检查的容器,并且在它们准备好服务之前不会将它们公布给客户端。
10、为扩展性设计
无需更改上游源码即可扩展你的Kubernetes集群。