一、K8S是什么
K8s全称为Kubernetes,是一个具有普遍意义的容器编排工具,它提供了一套基于容器构建分布式系统的基础依赖,其意义等同于Linux在操作系统中的地位,可以认为是分布式的操作系统。
Kubernetes是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。
在Kubernetes中,我们可以创建多个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这一组应用实例的管理、发现、访问,而这些细节都不需要运维人员去进行复杂的手工配置和处理。
二、k8s的优势
1. 容器编排
2. 轻量级
3. 开源
4. 弹性伸缩
5. 负载均衡
三、k8s的核心功能
1.自愈:重新启动失败的容器,在节点不可用时,替换和重新调度节点上的容器,对用户定义的健康检查不响应的容器会被中止,并且在容器准备好服务之前不会把其向客户端广播。
2.弹性伸缩:通过监控容器的cpu的负载值,如果这个平均高于80%,增加容器的数量,如果这个平均低于10%,减少容器的数量
服务的自动发现和负载均衡:不需要修改您的应用程序来使用不熟悉的服务发现机制,Kubernetes为容器提供了自己的IP地址和一组容器的单个DNS名称,并可以在它们之间进行负载均衡。
3.滚动升级和一键回滚:Kubernetes逐渐部署对应用程序或其配置的更改,同时监视应用程序运行状况,以确保它不会同时终止所有实例。如果出现问题,Kubernetes会为您恢复更改,利用日益增长的部署解决方案的生态系统。
四、核心概念
1.master:k8s集群的管理节点,负责管理集群,提供集群的资源数据的访问入口
2.Node:node是k8s集群架构中运行pod的服务节点
3.Pod:运行于Node节点上,若干相关容器的组合,pod内包含的容器运行在同一宿主机上,使用相同的网络命名空间,IP地址和端口,能够通过localhost进行通信
五、k8s的应用场景
k8s最适合跑微服务架构
六、复杂中间件应用如何部署到K8s最常碰见的误区
1.一切设计皆yaml
2.一切皆合一
3.一切皆终态
4.一切交互皆cr
K8s给我们打开了一扇门,带给了我们很多优秀的设计,优秀的理念,但是这些设计和理念也是有自己的适用的场景,并不是放之四海而皆准。我们不应该盲从,试图一切都要follow k8s的设计和规则,而抛弃之前的优秀设计理念。
软件设计经历了10多年的发展,形成了一套行之有效的设计方法论,k8s也是在这些设计方法论的支持下设计出来的。取其精华去其糟粕,是我们程序员应该做的事情。
以上就是关于K8S部分内容,如果有什么不懂的,可以留言与小编互动哦!运维工程师面试题