首页 > 其他分享 >k8s进阶面试

k8s进阶面试

时间:2023-07-05 15:46:56浏览次数:57  
标签:进阶 主机 面试 API etcd pod k8s 节点 路由

docker与k8s的区别,分别适用于什么场景?

docker只负责生成容器,没有其他功能,但部署简单,方便测试等,k8s附带的有各种功能:探针、污点、资源限制、高可用等,如果生产中的服务达到一定规模且需保证全链路监控及高可用,k8s是最佳选择

docker的底层实现原理?如何运行一个容器?

六种命名空间的共享与限制,镜像的写时复制原则,资源限制(参考:https://www.cnblogs.com/lijin543/p/15635844.html)

容器负载相较虚机要低,如何实现?

镜像体积较小,只安装需要的依赖;Cgroup资源限制

k8s都有哪些核心组件?ETCD能不能换成redis?

在微服务架构中,etcd用于服务的注册和发现,利用了其租约特性,而Redis是通用的分布式内存缓存系统,通常用于通过缓存内存中的数据和对象来加速动态数据库驱动的网站 虽然Redis和etcd都是键值存储,但是它们有不同的设计目标和适用场景。以下是一些原因,说明为什么Redis不能替代etcd:   一致性:etcd是一个强一致性的分布式键值存储,它提供了一种可靠的方式来存储需要被分布式系统或机器集群访问的数据,而Redis是一个分布式缓存系统,它的一致性模型是最终一致性,不能保证数据的强一致性 高可用性:etcd被设计为高可用性,即使其中一些节点失败,它也可以继续运行。而Redis的高可用性需要通过主从复制和哨兵机制来实现,这些机制需要额外的配置和管理 数据类型:etcd只用于存储Kubernetes对象,而Redis和其他键值存储有数据类型的灵活性,可以存储各种类型的数据 查询和索引:etcd只保证了高可用性,但并没有给你提供快速查询和索引。所有的nosql键值存储都是以快速查询和搜索为目标建立的

api-server为什么不能直接生成控制器,而是由控制器管理器发出生成控制器指令?

职责不同,api-server负责与各个组件交互,提供准入控制功能(证书通过后才能访问localhost:6443/8080),集成安全机制(RBAC),而关于资源状态这一块它负责将期望的资源状态以键值对数据形式持久存储在ETCD中,一旦发生变化,控制器在api-server提供的当前状态基础上做出相应调整,以达到期望状态

kubectl apply -f deployment的yaml文件背后都做了什么?

用户提交创建Pod的请求,可以通过API Server的REST API ,也可用Kubectl命令行工具,支持Json和Yaml两种格式; API Server 处理用户请求,存储Pod数据到Etcd; Scheduler通过和 API Server的watch机制,查看到新的pod,尝试为Pod绑定Node; 过滤主机:调度器用一组规则过滤掉不符合要求的主机,比如Pod指定了所需要的资源,那么就要过滤掉资源不够的主机; 主机打分:对第一步筛选出的符合要求的主机进行打分,在主机打分阶段,调度器会考虑一些整体优化策略,比如把一个Replication Controller的副本分布到不同的主机上,使用最低负载的主机等; 选择主机:选择打分最高的主机,进行binding操作,结果存储到Etcd中; kubelet根据调度结果执行Pod创建操作: 绑定成功后,会启动container, docker run, scheduler会调用API Server的API在etcd中创建一个bound pod对象,描述在一个工作节点上绑定运行的所有pod信息。运行在每个工作节点上的kubelet也会定期与etcd同步bound pod信息,一旦发现应该在该工作节点上运行的bound pod对象没有更新,则调用Docker API创建并启动pod内的容器。 

 

简单谈下calico网络,calico中同节点间pod通信、跨节点通信都是怎么实现的?

calico有3种模式,bgp、ip-in-ip、vxlan模式 bgp可以纯路由的方式实现pod通信,但无法打通跨网段路由,需要借助覆盖网络,即ip-in-ip、vxlan模式,前者开销较小,可优先考虑用该方式实现跨网段间pod通信,如果是flannel网络的vxlan模式向calico迁移,可以使用vxlan模式 在bgp模式中, 同节点pod间通信过程:各pod与169.254.1.1这个逻辑设备形成veth pair,pod将请求数据包转给169.254.1.1后,由于该设备位于内核网络空间并开启了代理转发功能,他会查询当前路由表也就是宿主机路由表,按照相关路由规则转给相应pod 跨界点通信过程:直接通过bgp路由协议转给另一节点的pod   在这个过程中,路由规则由felix容器统计pod IP地址和路由规则并生成路由规则,这些信息只能同步给相邻节点,rr(route reflecctor)容器负责将相关信息同步给其他自治域,这样路由规则实现这个集群的同步,其上两个容器位于calico-node-哈希字符串这个pod中,该pod以daemon-set方式运行在每个节点

标签:进阶,主机,面试,API,etcd,pod,k8s,节点,路由
From: https://www.cnblogs.com/lijin543/p/17528697.html

相关文章

  • java常见面试题分析及答案
    new一个object对象占多少字节对象头加实例数据16个字节java反射的优缺点Java反射的优点1.增加程序的灵活性,避免将程序写死到代码里2.代码简洁,提高代码的复用率,外部调用方便3.对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法Java反射......
  • 后台开发进阶!白话DDD从入门到实践
     导语 尝试用大家都能听得懂的话,结合我们在增值业务中的具体实现,分享一下我们从入门到实践DDD的一些心得。0.写在前面的DDD(领域驱动设计)是EricEvans于2003年提出的解决复杂的中大型软件的方法,开始一直不愠不火。直到MartinFowler于2014年发表的论文《Microservices》引起大......
  • 【阿里二面面试题】说说你对 Raft 算法的理解?
    博主介绍:✌博主从事应用安全和大数据领域,有8年研发经验,5年面试官经验,Java技术专家,WEB架构师,阿里云专家博主,华为云云享专家✌......
  • Kubernetes(k8s) 资源限制:resources,LimitRange,ResourceQuota
    目录一.系统环境二.前言三.Kubernetes资源限制简介四.创建没有资源限制的pod4.1创建没有资源限制的pod4.2内存消耗测试五.使用resources字段配置资源限制5.1限制最低内存5.2限制最低CPU5.3限制最低CPU和最高内存5.4内存消耗测试六.使用LimitRange限制资源范围七.同时使用Lim......
  • Mysql进阶篇(一)之存储引擎
    一.MySQL体系结构1.连接层最上层是一些客户端和链接服务,包含本地sock通信和大多数基于客户端/服务端工具实现的类似于TCP/IP的通信。主要完成一些类似于连接处理、授权认证及相关的安全方案。在该层上引入了线程池的概念,为通过认证安全接入的客户端提供线程。同样在该层上可......
  • C++面试八股文:如何避免死锁?
    某日二师兄参加XXX科技公司的C++工程师开发岗位第31面:面试官:什么是锁?有什么作用?二师兄:在C++中,锁(Lock)是一种同步工具,用于保护共享资源,防止多个线程同时访问,从而避免数据竞争和不一致。面试官:有哪些锁?二师兄:从种类上分,可以分为普通锁、读写锁、递归锁等种类。二师兄:从实现上分......
  • 面试类-Java基础 (一)
    JVM、JDK和JRE有什么区别? JVM:JavaVirtualMachine,Java虚拟机,Java程序运行在Java虚拟机上。针对不同系统的实现(Windows,Linux,macOS)不同的JVM,因此Java语言可以实现跨平台。JRE:Java运⾏时环境。它是运⾏已编译Java程序所需的所有内容的集合,包括Java虚拟机(JVM),Java......
  • 1.HTTP面试题
    1.HTTP基本概念1.1HTTP是什么 HTTP(HyperTextTransferProtocol)是超文本传输协议。它是一种双向传输协议。具体来说HTTP是一种在计算机世界里,专门在[两点]之间[传输]文字、图片、音频、视频等[超文本]数据的[约定和规范]。 1.2HTTP常见状态码有哪些 1.3HTTP常见字......
  • 面试现场简单几道java算法题, 你能写出几道?
    这两天小编逛论坛的时候发现一个很有意思的事情,就是一位互联网公司的面试官分享的,他们最近想招一批java的实习生,所以他们的面试题并不难,但是前来面试的人,却很多都挂在了几道算法题上,要么就是逻辑不严谨,要么就是题目都看不懂的,还有就是书写错误的,这让他感到很诧异,毕竟算法其实对于......
  • 云原生之K8S与Docker,阿里云工程师工作笔记流出,还不收藏
    容器,毫无疑问是近年来的又一个技术热词。容器化技术的诞生和兴起,以及它所催生的微服务架构、DevOps、云原生等技术理念,都对软件行业产生了深远的影响。容器的优点有很多了,完善的封装、便捷的部署、轻量的启动和调度,这些都是容器技术受到欢迎的原因。与编排系统配合后,它能让我们......