当前位置: 首页 > news >正文

K8S面试题学习5

参考K8S面试题(史上最全 + 持续更新)_kubernetes常见面试题-CSDN博客做的个人总结,规划是每天看10题,thx!

1. 请详述kube-proxy原理?

        每个node节点都会运行一个kube-proxy的进程,核心功能是将service的访问转发到后端pod上;

        kube-proxy通过监听集群列表,并对本机的iptables修改,从而实现网络路由,其中的负载均衡也是通过iptables来实现的;

2. k8s集群外流量怎么访问Pod?

        可以通过Service的NodePort方式访问,会在所有节点监听同一个端口,比如:30000,访问节点的流量会被重定向到对应的Service上面;

3. K8S 资源限制 QoS?

        BestEffort:什么都不设置(CPU or Memory),佛系申请资源;

        Burstable:Pod 中的容器至少一个设置了CPU 或者 Memory 的请求;

        Guaranteed:Pod 中的所有容器必须设置 CPU 和 Memory,并且 request 和 limit 值相等;

4. kubelet 监控 Node 节点资源使用是通过什么组件来实现的?

        用Metrics Server提供核心指标,包括Node、Pod的CPU和内存的使用。而Metrics Server需要采集node上的cAdvisor提供的数据资源,

        当 kubelet 服务启动时,它会自动启动 cAdvisor 服务,然后 cAdvisor 会实时采集所在节点的性能指标及在节点上运行的容器的性能指标。

        kubelet 的启动参数 --cadvisor-port 可自定义 cAdvisor 对外提供服务的端口号,默认是 4194;

5.  deployment/rs的区别?

        deployment是rs的超集,也是升级版,提供更多的部署功能,如:回滚、暂停和重启、 版本记录、事件和状态查看、滚动升级和替换升级

6. rc/rs实现原理?

        Replication Controller 可以保证Pod始终处于规定的副本数,

        而当前推荐的做法是使用Deployment+ReplicaSet,

        ReplicaSet 号称下一代的 Replication Controller,当前唯一区别是RS支持set-based selector,

        RC是通过ReplicationManager监控RC和RC内Pod的状态,从而增删Pod,以实现维持特定副本数的功能,RS也是大致相同。

7. 简述Kubernetes RC的机制?

        Replication Controller用来管理Pod的副本,保证集群中存在指定数量的Pod副本。当定义了RC并提交至Kubernetes集群中之后,Master节点上的Controller Manager组件获悉,并同时巡检系统中当前存活的目标Pod,并确保目标Pod实例的数量刚好等于此RC的期望值,若存在过多的Pod副本在运行,系统会停止一些Pod,反之则自动创建一些Pod。

8. 简述Kubernetes Pod的常见调度方式?

        Deployment或RC:该调度策略主要功能就是自动部署一个容器应用的多份副本,以及持续监控副本的数量,在集群内始终维持用户指定的副本数量;

        NodeSelector:定向调度,当需要手动指定将Pod调度到特定Node上,可以通过Node的标签(Label)和Pod的nodeSelector属性相匹配;

        NodeAffinity亲和性调度:亲和性调度机制极大的扩展了Pod的调度能力,目前有两种节点亲和力表达:硬规则,必须满足指定的规则,调度器才可以调度Pod至Node上(类似nodeSelector,语法不同);软规则,优先调度至满足的Node的节点,但不强求,多个优先级规则还可以设置权重值;

        Taints和Tolerations(污点和容忍):Taint:使Node拒绝特定Pod运行;Toleration:为Pod的属性,表示Pod能容忍(运行)标注了Taint的Node;

9. 简述Kubernetes deployment升级过程?

        初始创建Deployment时,系统创建了一个ReplicaSet,并按用户的需求创建了对应数量的Pod副本;

        当更新Deployment时,系统创建了一个新的ReplicaSet,并将其副本数量扩展到1,然后将旧ReplicaSet缩减为2;之后,系统继续按照相同的更新策略对新旧两个ReplicaSet进行逐个调整;

最后,新的ReplicaSet运行了对应个新版本Pod副本,旧的ReplicaSet副本数量则缩减为0。

10. 简述Kubernetes deployment升级策略?

        在Deployment的定义中,可以通过spec.strategy指定Pod更新的策略,

        目前支持两种策略:Recreate(重建)和RollingUpdate(滚动更新),

        默认值为RollingUpdate;

                Recreate:设置spec.strategy.type=Recreate,表示Deployment在更新Pod时,会先杀掉所有正在运行的Pod,然后创建新的Pod;

                RollingUpdate:设置spec.strategy.type=RollingUpdate,表示Deployment会以滚动更新的方式来逐个更新Pod。同时,可以通过设置spec.strategy.rollingUpdate下的两个参数(maxUnavailable和maxSurge)来控制滚动更新的过程。

http://www.lryc.cn/news/345771.html

相关文章:

  • 字符以及字符串函数
  • 记录解决问题--redis ssl连接
  • 买卖股票的最佳时机
  • Linux部署安装
  • docker搭建mysql集群实现主从复制
  • Neo4j 之安装和 CQL 基本命令学习
  • 【全开源】JAVA台球助教台球教练多端系统源码支持微信小程序+微信公众号+H5+APP
  • 机器学习-如何为模型选择评估指标?
  • 【AutoGPT】踩坑帖(follow李鱼皮)
  • 机器学习-L1正则/L2正则
  • Linux——socket编程之tcp通信
  • HTTP协议介绍
  • elasticsearch安装配置注意事项
  • Istio 流量管理(请求路由、流量转移、请求重试、流量镜像、故障注入、熔断等)介绍及使用
  • Transformers中加载预训练模型的过程剖析
  • 使用MCU的 GPIO口 模拟SDIO时序读写TF/SD卡的可能性。
  • SSM【Spring SpringMVC Mybatis】——Mybatis(二)
  • 在线教育系统在线网校报价,培训机构是怎样招聘老师的?流程是什么?
  • 您的文件和驱动器上的“密码保护”有多安全?
  • 4000字超详解Linux权限
  • SearXNG - 一个注重隐私的互联网元搜索引擎
  • (第15天)【leetcode题解】459、重复的子字符串
  • PostgreSQL的学习心得和知识总结(一百四十二)|深入理解PostgreSQL数据库数据库之 Continuous Integration
  • 【外币兑换,简单贪心】
  • 数据库入门(sql文档+命令行)
  • 【机器学习300问】84、AdaGrad算法是为了解决什么问题?
  • Java算法-力扣leetcode-14. 最长公共前缀
  • 视频拼接融合产品的产品与架构设计(二)
  • 【docker 】push 镜像到私服
  • Java框架精品项目【用于个人学习】