连尚网络 运维工程师 一 & 二

岗位:k8s运维工程师

一面:

自我介绍

1,kubernets 灰度发布,切换部分流量到新的服务上怎么实现

答: ingress配置文件中,annotation 字段下定义不同的策略

参考地址: https://cloud.tencent.com/developer/article/1972417
#四种灰度策略:
1,nginx.ingress.kubernetes.io/canary-by-header:
基于 Request Header 的流量切分,适用于灰度发布以及 A/B 测试。

2,nginx.ingress.kubernetes.io/canary-by-header-value:
要匹配的 Request Header 的值,用于通知 Ingress 将请求路由到 Canary Ingress 中指定的服务。

nginx.ingress.kubernetes.io/canary-weight:
基于服务权重的流量切分,适用于蓝绿部署,权重范围 0 - 100 按百分比将请求路由到 Canary Ingress 中指定的服务。

nginx.ingress.kubernetes.io/canary-by-cookie:
基于 Cookie 的流量切分,适用于灰度发布与 A/B 测试。用于通知 Ingress 将请求路由到 Canary Ingress 中指定的服务的cookie。

2,epollo 模式实现原理?操作系统硬件层面属于同步模型还是异步模型?同步异步区别是什么?

epoll在操作系统IO层面时属于同步模型。

同步: 当进程或线程在运行过程中,发生阻塞时, CPU要等待程序任务完成才能继续执行下一步
异步:线程发生阻塞时。CPU无需等待该线程处理任务,可以去执行别的任务,之后再回来继续执行下一步任务。

epoll实现原理:
创建epoll对象: 首先会调研epoll_create 创建一个epoll文件描述符
添加事件到epoll监听: 调用epoll_ctl函数,向epoll FD中添加需要监控的文件描述符,并指点事件类型,如EPOLLIN(可读)、EPOLLOUT(可写)、EPOLLERR(错误)等 
等待事件发生: 调用epoll_wait进程会阻塞等待,直到有一个已监听的文件描述符有事件触发,将相应的文件描述符加入到就绪队列中。
事件通知及处理:事件触发后,epoll_wait会返回一个就绪队列文件描述符和触发事件类型的列表,应用唤醒CPU根据列表信息对每个文件描述符进行相应操作。

3,epollo 惊群的原理

    答:新的连接到达时,所有等待的进程/线程同时被唤醒,但只有一个线程可以处理该连接,其他进程处于空转状态,以此造成cpu资源的浪费和性能的下降。 
    解决方法:
    可以让一个工作线程负责epoll监听事件并分配给一个空闲线程。以此防止全部唤醒
    
    
    

4,tcp三次握手原来

首先是客户端(client)向服务端发起报文请求syn,报文中包含一个随机生成的序号X,此时的状态是syn-send
服务端收到客户端请求报文后,回应一个 syn+ack报文给客户端,同时也会发送自己的序号Y,用于后续通信,当前的状态是syn-rcvd
客户端接收到服务器的 SYN + ACK 报文后,会回复一个ack报文,报文中包含确实号Y+1。此时客户端的状态ESTABLISHED 状态。服务端收到确认包后进入full open  状态也变更为ESTABLISHED 状态

5,网络插件calico 和flannel 有什么不同。

6,Linux系统平均负载高如何定位解决这个问题。

系统负载高,是由于当前服务队列中,有正在运行的或等待CPU时间片的进程或线程跟IO正在进行交互处于不可中断,导致系统整体负载偏高
定位问题:
不可中断进程: ps -ef | grep "D"  # ”D“表示系统中不可中断的进程
cpuf负载高:ps aux --sort -pcpu| head。  #. #cpu使用率由高至低进行排序
当前系统等待处理的队列数:  vmstat   # 第一列的 “r” 表示当前队列排队数 第二列“b” 表示阻塞数

二面:

面试官好像是CTO 一边画图一边提问

vxlan 原理

vXLAN是一种网络虚拟化技术,可以改进大型云计算在部署时的扩展问题,是对VLAN的一种扩展。VXLAN是一种功能强大的工具,可以穿透三层网络对二层进行扩展。它可通过封装流量并将其扩展到第三层网关

docker 和 podman 区别

docker支持的文件系统类型

文件系统种类包括AUFS、 btrfs、Device Mapper、 overlay 、 overlay2、vfs、zfs
overlay2:Docker 1.12 后推出,原生支持128层,效率比OverlayFS高,较新的版本Dokcer支持。

k8s持久化文件系统类型有哪些

持久化文件系统:
nfs,ceph,glusterfs,iscsl,rbd等

service 原理

k8s中service是一种抽象对象,定义一组pod的逻辑集合,并提供一种访问这些pod的方式。通过标签选择器来确认客户端请求路由到后端Pod.
k8s中kube-proxy组件实现service实际代理的服务器。它负责根据service规则将请求转发到后端不同节点上pod,同时还提供负载均衡的能力。将请求流量分发到后端同一组标签的不同pod上。这有助于实现高可用性和可伸缩性。

service 端口暴露的类型有哪些?怎么跟pod进行通信的

service暴露类型:
service支持四种类型: cluster, noport,ExternalName,LoadBalancer
端口暴露到集群外类型: noport,LoadBalancer 
如何跟pod进行通信:
首先是标签选择器确认具有相同标签的pod,通过访问service虚拟地址将请求流量路由到正确后端pod,使用iptables或ipvs生成规则来实现service与pod的通信,kube-proxy进行这些规则的维护和变更。

ingress 和noport 访问方式的不同

ingress: 将外部流量引入到集群内部中服务,是一个七层的代理服务,可以居于url地址进行转发。同时可以根据不同的url将流量转发到后端不同一组pod,可以进行丰富的路由和负载均衡配置,支持多个域名和路径,使得服务在外部访问时可以更加灵活。
Noport:  noport是k8s 提供的一种服务类型,将内部服务暴露到集群外部。NodePort会在每个Node节点上监听一个指定的端口,并将请求转发到相应的服务上。

k8s 有哪些组件,他们分别的作用。

pytnon 多线程为什么只能在一个cpu上运行。 如何使用多个cpu

我记得的大概就这些了 原理的东西没怎么背。

全部评论
哇,问的这么难吗
点赞 回复 分享
发布于 2023-11-10 22:27 广东
很有意思的题啊,我一个都不会
点赞 回复 分享
发布于 2023-12-12 00:00 江苏
哥们咋学的知道的这么多😭
点赞 回复 分享
发布于 2024-04-17 17:51 辽宁
大佬,请问下面运维工程师,网工方向大概要会多少啊?我现在网工就只会MSTP VRRP OSPF这些,不知道够不够
点赞 回复 分享
发布于 2024-07-22 10:37 四川
老哥去连尚了嘛
点赞 回复 分享
发布于 2024-10-13 22:29 湖北

相关推荐

Dream_coding:你是不是只投大厂了
点赞 评论 收藏
分享
kl_我是东山啊:《相关公司:阿里巴巴》
投递阿里巴巴等公司10个岗位
点赞 评论 收藏
分享
评论
8
35
分享

创作者周榜

更多
牛客网
牛客企业服务