一、什么是k8s
K8S(Kubernetes) 是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。 Kubernetes 拥有一个庞大且快速增长的生态系统。Kubernetes 的服务、支持和工具广泛可用。
Kubernetes 是开源的一个基于容器的集群管理平台,Kubernetes简称K8S;K8S用于容器化应用程序的部署,扩展和管理;K8S提供了容器编排,资源调度,弹性伸缩,部署管理,服务发现等-一系列功能。
k8s 本质上就是用来简化微服务的开发和部署的,关注点包括自愈和自动伸缩、调度和发布、调用链监控、配置管理、Metrics 监控、日志监控、弹性和容错、API 管理、服务安全等,k8s 将这些微服务的公共关注点以组件形式封装打包到 k8s 这个大平台中,让开发人员在开发微服务时专注于业务逻辑的实现,而不需要去特别关系微服务底层的这些公共关注点,大大简化了微服务应用的开发和部署,提高了开发效率。
二、容器化部署的优点:
1. 共享了操作系统,节约了资源
2. 每个容器拥有自己的文件系统、CPU 、内存和进程空间等
3. 可以对容器的资源进行控制,不影响其它容器和宿主机
4. 容器化的应用可以在不同的云服务商、不同的Linux系统进行部署
三、k8s的主要功能
1. 自我修复:一旦某一个容器崩溃,能够在1秒左右迅速启动新的容器
2. 弹性伸缩:可以根据需要,自动对集群中正在运行的容器数量进行调整
3. 服务发现:可以通过自动发现的形式找到它所依赖的服务
4. 负载均衡:如果一个服务启动了多个容器,能够自动实现请求的负载均衡
5. 版本回退:如果发现新发布的程序版本有问题,可以立即回退到原来的版本
6. 存储编排:可以根据容器自身的需求自动创建存储卷
四、k8s额主要作用:
1. 控制和管理应用程序对资源的使用
2. 自动负载均衡应用程序的多个实例之间请求
3. 监控资源使用和资源限制,为了可以自动阻止应用消耗过多的资源并且可以再次恢复它们
4. 如果主机资源耗尽或主机死机,将应用程序实例从一台主机迁移到另一台主机是一个可行的选项
5. 当有新的主机加入集群时,新增加的额外资源可以被自动使用