自动装箱
kubernetes构建于容器之上,基于资源依赖及其它约束自动完成容器部署且不影响其可用性,同时,为了提高利用率和节省更多资源,将关键和最佳工作量结合在一起。
自我修复
支持容器故障后自动重启、节点故障后重新调度容器,以及其它可用节点,健康检测失败后关闭容器并重新创建灯自我修复机制。
水平扩展
支持通过简单命令或UI手动水平扩展,以及基于CPU等资源负载率的自动水平扩展机制。
服务发现和负载均衡
kubernetes通过附加组件之一的 KubeDNS/CoreDNS 为系统内置了服务发现功能,它会为每个Service配置DNS名称,并允许集群内的客户端直接使用此名称发出访问请求,而Service则通过iptables或ipvs内建了负载均衡机制。
自动发布和回滚
kubernetes支持 灰度 更新应用程序或配置信息,它会监控更新过程中应用程序的健康状态,以确保它不会在同一时间杀掉所有pods,而此过程中一旦有故障发生,就会立即自动执行回滚操作。
密钥和配置管理
kubernetes的Config Map实现了配置数据与Docker镜像解耦,需要时,仅对配置做出变更而无需重新构建Docker镜像,这为应用开发部署带来了很大的灵活性。刺猬,对于应用所依赖的一些敏感数据,如用户名和密码、令牌、密钥等信息,kubernetes专门提供了Secret对象为其解耦,即便利了应用快速开发和交付,又提供了一定程度上的安全保障。
存储编排
kubernetes 支持 pod 对象按需自动挂载不同类型的存储系统,这包括节点本地存储,网络存储,云存储等。
批量处理执行
除了服务器型应用,kubernetes还支持批处理作业及CI(持续集成),如果需要,一样可以实现容器故障后恢复。