k8s面试题总结(八)

1.K8s部署服务的时候,pod一直处于pending状态,无法部署,说明可能的原因

  1. Node节点的资源不足,yaml文件资源限制中分配的内存,cpu资源太大,node宿主机资源没那么大,导致无法部署。
  2. 部署pod的yaml文件中有标签选择器节点亲和性(nodeAffitiy)的名称配置,并且采用硬策略,但是所有node节点上没有相对应的节点标签,导致无法部署。解决办法:把yaml文件中节点亲和性的配置去掉,或在相应的node节点上打上相对应的标签。
  3. Node节点上有污点,部署pod的yaml文件中没有配置污点容忍度,导致无法调度部署。

2.执行kubelet get cs查看集群状态不正常,显示unhealthy,如何解决?

这是因为k8s组件kubelet服务配置文件里没有配置本地监听端口或设置为了0,可以在本地kubelet服务配置文件中,将端口改成kubelet服务对应的端口,或注释里面的port=0。

3.Pod资源共享机制如何实现?如何实现pod中两个容器共享同一个存储数据资源?

首先在pod的yaml文件里定义一个emptyDir空目录,挂载宿主机的临时目录,pod中的两个容器,同时挂载同一个名字,将资源挂载到自己容器的相应路径,这样两个容器就可以共享该数据资源了。

4.节点选择器都有什么,各自的区别是什么?

有三种,分别是:nodeSelector、nodeAffinity、nodeName(一般不经过调度器,很少用)

NodeSelector节点选择器:通过给node节点打上标签,yaml文件需要配置匹配相应的node标签,从而将pod调度到相应的节点上,若没有匹配到相应的node标签,则无法调度。

nodeAffinity 节点亲和性:与nodeSelector作用一样,但是比较灵活,调度策略分为:软策略和硬策略。软策略:是尝试满足,尽量满足,但不能保证。硬策略:必须满足条件,才能给调度。

5.说一下Pod网络连接超时的几种情况?

(1)Pod和pod之间的连接超时

解决排查:查看calico网络插件是否是running,查看calico网络组件的日志,提取重要信息。

(2)pod和虚拟主机的服务器连接超时

解决排查:检查pod网络,能否ping通同网段pod的IP

(3)pod和外网连接超时

解决排查:检查物理网络,在容器内ping外网域名或其他pod的IP

6.K8s中一个node节点突然断电,恢复后上面的pod无法启动,故障如何排查?

当node节点宕机后,k8s会自动为这个节点加上不可调度的污点,有可能开机后,污点没有自动消失,导致pod无法调度。

解决:

  1. 查看node节点是否有污点存在。
  2. 检查node节点的主机名是否修改,主机名更改后连接不到k8s集群,也会增加污点。
  3. 检查node节点的kubelet服务是否正常
相关推荐
南方以南_13 小时前
对比k8s的service和kube-proxy
云原生·容器·kubernetes
爱宇阳14 小时前
从零开始部署 GitLab CE 18.4.2:Docker Compose 新手教程
docker·容器·gitlab
斯普信专业组14 小时前
基于k8s环境的mongodb多副本高可用方案
mongodb·容器·kubernetes
AKAMAI15 小时前
Linebreak赋能实时化企业转型:专业系统集成商携手Akamai以实时智能革新企业运营
人工智能·云原生·云计算
博睿谷IT99_16 小时前
K8s 核心架构是什么?组件怎么协同工作的?
云原生·kubernetes·k8s·k8s pod 设计原理·容器编排与集群管理
能不能别报错16 小时前
K8s学习笔记(二十一) RBAC
笔记·学习·kubernetes
久绊A17 小时前
Kubernetes(k8s)版本查看
云原生·容器·kubernetes
007php00717 小时前
Docker 实战经验之关键文件误删恢复指南(一)
jvm·docker·云原生·容器·面试·职场和发展·eureka
Do_GH17 小时前
【Docker】06.通过WSL部署Docker Desktop
运维·docker·容器
可DRAK鸦|・ω・`)17 小时前
docker后端jar包本地构建镜像
java·docker·容器·jar