k8s 2003面试题(1):k8s有哪些特性?
一、Kubernetes(简称K8s)是一个开源容器编排平台,具有以下特性:
-
自动装箱:Kubernetes可以根据资源依赖和其他约束条件,智能地定位容器,并自动完成容器的部署,以确保其可用性。它还可以在同一节点上通过调度机制混合运行关键型应用和非关键型应用的工作负载,以提升资源利用率。
-
自我修复(自愈):Kubernetes支持容器的故障自动重启,节点故障后重新调度容器到其他可用节点,以及健康状态检查失败后关闭容器并重新创建等自我修复机制。
-
水平扩展:Kubernetes支持通过简单命令或UI手动水平扩展,同时也支持基于CPU等资源负载率的自动水平扩展机制。
-
服务发现和负载均衡:Kubernetes内置了服务发现功能,通过KubeDNS(或CoreDNS)为系统提供DNS名称配置,并允许集群内的客户端直接使用此名称发出访问请求。此外,Kubernetes还通过iptables或ipvs内置了负载均衡机制。
-
自动发布和回滚:Kubernetes支持“灰度”更新应用程序或其配置信息,并会监控更新过程中应用程序的健康状态,以确保不会在同一时刻杀掉所有实例。如果在此过程中发生故障,它会立即自动执行回滚操作。
-
密钥和配置管理:Kubernetes的ConfigMap实现了配置数据与Docker镜像的解耦,使得在需要时仅对配置做出变更而无须重新构建Docker镜像,为应用开发部署提供了很大的灵活性。对于应用所依赖的一些敏感数据,如用户名和密码、令牌、密钥等信息,Kubernetes专门提供了Secret对象以实现依赖解耦,既便利了应用的快速开发和交付,又提供了一定程度上的安全保障。
-
存储编排:Kubernetes支持Pod对象按需自动挂载不同类型存储系统,包括节点本地存储、公有云服务商的云存储(如AWS和GCP等),以及网络存储系统(如NFS、iSCSI、Gluster、Ceph、Cinder和Flocker等)。
-
批量处理执行:Kubernetes支持批量处理执行,可以高效地管理大规模的容器化应用程序。