1、 k8s是什么?请说出你的了解?答:Kubenetes是一个针对容器应用 , 进行自动部署 , 弹性伸缩和管理的开源系统 。 主要功能是生产环境中的容器编排 。
K8S是Google公司推出的 , 它来源于由Google公司内部使用了15年的Borg系统 , 集结了Borg的精华 。
2、 K8s架构的组成是什么?答:和大多数分布式系统一样 , K8S集群至少需要一个主节点(Master)和多个计算节点(Node) 。
- 主节点主要用于暴露API , 调度部署和节点的管理;
- 计算节点运行一个容器运行环境 , 一般是docker环境(类似docker环境的还有rkt) , 同时运行一个K8s的代理(kubelet)用于和master通信 。 计算节点也会运行一些额外的组件 , 像记录日志 , 节点监控 , 服务发现等等 。 计算节点是k8s集群中真正工作的节点 。
- Kubectl:客户端命令行工具 , 作为整个K8s集群的操作入口;
- Api Server:在K8s架构中承担的是“桥梁”的角色 , 作为资源操作的唯一入口 , 它提供了认证、授权、访问控制、API注册和发现等机制 。 客户端与k8s群集及K8s内部组件的通信 , 都要通过Api Server这个组件;
- Controller-manager:负责维护群集的状态 , 比如故障检测、自动扩展、滚动更新等;
- Scheduler:负责资源的调度 , 按照预定的调度策略将pod调度到相应的node节点上;
- Etcd:担任数据中心的角色 , 保存了整个群集的状态;
- Kubelet:负责维护容器的生命周期 , 同时也负责Volume和网络的管理 , 一般运行在所有的节点 , 是Node节点的代理 , 当Scheduler确定某个node上运行pod之后 , 会将pod的具体信息(image , volume)等发送给该节点的kubelet , kubelet根据这些信息创建和运行容器 , 并向master返回运行状态 。 (自动修复功能:如果某个节点中的容器宕机 , 它会尝试重启该容器 , 若重启无效 , 则会将该pod杀死 , 然后重新创建一个容器);
- Kube-proxy:Service在逻辑上代表了后端的多个pod 。 负责为Service提供cluster内部的服务发现和负载均衡(外界通过Service访问pod提供的服务时 , Service接收到的请求后就是通过kube-proxy来转发到pod上的);
- container-runtime:是负责管理运行容器的软件 , 比如docker
- Pod:是k8s集群里面最小的单位 。 每个pod里边可以运行一个或多个container(容器) , 如果一个pod中有两个container , 那么container的USR(用户)、MNT(挂载点)、PID(进程号)是相互隔离的 , UTS(主机名和域名)、IPC(消息队列)、NET(网络栈)是相互共享的 。 我比较喜欢把pod来当做豌豆夹 , 而豌豆就是pod中的container;
【删除|23 个必知必会的 Kubernetes 高频面试题】另外 , 容器部署可以将各个服务进行隔离 , 互不影响 , 这也是容器的另一个核心概念 。
4、请你说一下kubenetes针对pod资源对象的健康监测机制?答:K8s中对于pod资源对象的健康状态检测 , 提供了三类probe(探针)来执行对pod的健康监测:
1) livenessProbe探针
可以根据用户自定义规则来判定pod是否健康 , 如果livenessProbe探针探测到容器不健康 , 则kubelet会根据其重启策略来决定是否重启 , 如果一个容器不包含livenessProbe探针 , 则kubelet会认为容器的livenessProbe探针的返回值永远成功 。
相关经验推荐
- 删除|苹果要求App必须内置删除账号功能!6月30日是最后期限,网友:必须支持
- 微信|微信被好友单向删除?三种方法教你检测,最后一种最实用!
- 华为|微信“+”号隐藏功能,摁一下,就可以快速知道谁把你删除了
- 删除|人教Pad定价超四千元,由学校统一采购,官网删除价格,配置停留在七年前
- 删除|别再清理手机垃圾了,只需删除这4个文件夹,手机用多久都不会卡
- iPod|iPod 彻底被结束,页面也被悉数删除丨iPhone14 Max 被曝延迟生产
- 删除|红米K50大幅度降价,登顶销量榜首!卢伟冰这招绝了
- 微信|微信这个地方不删除,陌生人就能随意登录你微信,手把手教您删除
- 删除|3060高刷游戏本该选谁?这三款包你满意
- 删除|绿厂618购机活动有多狠?最高直降1500,数十款产品给足惊喜