K8s 常见面试题(K8s Common Interview Questions)

embedded/2025/2/7 11:58:46/

 K8s 常见面试题

k8s‌是一个开源的容器编排平台,用于管理云平台中多个主机上的容器化应用。Kubernetes的目标是使部署容器化的应用简单且高效,提供了应用部署、规划、更新和维护的一种机制‌。

定义和功能

Kubernetes(简称K8s)是一个开源系统,用于自动部署、扩展和管理容器化应用程序。它能够自动化运维管理多个跨机器的Docker程序,确保应用在复杂的云环境中顺畅运行‌。Kubernetes的核心功能包括:

  • 服务发现与负载均衡‌:无需修改应用程序即可使用服务发现机制。
  • 存储编排‌:自动挂载所选存储系统,包括本地存储。
  • Secret和配置管理‌:部署更新Secrets和应用程序的配置时不必重新构建容器镜像。
  • 批量执行‌:管理批处理和CI工作负载。
  • 水平扩缩‌:通过命令、UI或基于CPU使用情况自动扩缩应用程序。
  • 自动化上线和回滚‌:分步骤地将更改上线,监视应用程序运行状况。
  • 自动装箱‌:根据资源需求和其他约束自动放置容器
  • 自我修复‌:重新启动失败的容器,替换失效的容器‌。

架构和组件

Kubernetes的架构包括多个节点(Node),其中Master节点作为控制中心,负责管理和调度工作。主要组件包括:

  • ‌‌API Server:提供集群中各个组件之间的通信和管理接口。
  • ‌Etcd:分布式键值存储系统,保存集群状态信息和元数据。
  • ‌‌Controller Manager:监控和维护集群中所有资源对象的状态,进行自动化控制和管理操作‌。

在面试候选人时,我更喜欢提出一个现实世界的问题,以展示候选人在 Kubernetes 方面的实际技能

“你的应用程序在 Kubernetes 中运行,但用户报告无法访问它。你会怎么做?”

去年我面试了许多 DevOps 工程师和 Kubernetes 管理员,对这个问题的回答差异很大。在这篇文章中,我将解释如何复现这个问题,以及我希望从候选人的回答中看到什么。

第一步:检查 Pod 健康状况和日志

解决任何 Kubernetes 问题的第一步是确认 Pod 正在运行并且行为符合预期。

我在候选人回答中寻找的内容:

优秀的候选人会立即使用 Kubectl 命令检查 Pod 状态,并查看日志以寻找错误。

检查 Pod 健康状况的命令:

在日志中寻找的内容:

  • 应用程序错误。

  • 连接超时或与数据库相关的问题。第二步:验证服务配置

    对 Kubernetes 服务的忽视是问题所在 —— 大多数候选人甚至没有考虑到它们可能是问题的根源。配置错误的服务会阻止流量到达 Pod。

最优秀的候选人会提到检查服务类型(ClusterIP、NodePort、LoadBalancer 等),并确保它正确配置以将流量导向 Pod。

需要检查的内容:

  • 是否正确暴露了端口?

  • 服务选择器是否与 Pod 标签匹配?

第三步:检查网络策略

有经验的候选人会知道,网络策略 可能会阻止流量到达 Pod,尤其是在高安全性合规的环境中。

我在候选人回答中寻找的内容:

有经验的候选人应该承认 网络策略 可能会限制流量,并将其视为系统架构的一部分。

确保策略允许来自预期来源的流量到达应用程序端口。

第四步:调查 Ingress 和 DNS

对于基于域名的应用程序,Ingress 控制器或 DNS 可能会导致连接问题。提到 Ingress 和 DNS 进行故障排除的候选人会脱颖而出。

我在候选人回答中寻找的内容:

我欣赏候选人询问是否使用了 Ingress 资源以及 DNS 记录是否正确配置。

验证以下内容:

  • Ingress 资源指向正确的服务。

  • SSL/TLS 证书是否有效(如果适用)。

DNS 故障排除:

使用 nslookup 或 dig 等工具确认域名解析到正确的 IP 地址。

第五步:验证节点和集群健康状况

问题有时可能出在节点或集群配置上。一些具有深厚 Kubernetes 经验的候选人还会检查节点和集群的健康状况。

我在候选人回答中寻找的内容:

候选人应提到使用 Kubectl 和云提供商仪表板(AWS、GCP)检查节点和集群状态。

需要检查的内容:

  • 资源限制(CPU、内存)。

  • 节点污点和容忍度。

第六步:使用端口转发进行调试

作为最后的手段,我欣赏那些知道如何使用 Kubectl 进行 端口转发 调试的候选人。这可以绕过 Ingress 和 Services,直接连接到 Pod。

我在候选人回答中寻找的内容:

我重视那些建议使用端口转发作为快速隔离问题是否出在应用程序或 Kubernetes 配置上的候选人。

第七步:使用工具进行监控

为了找到最优秀的候选人,我会建议询问他们使用过哪些工具来收集集群状态信息,例如 Prometheus、Grafana 或 Kubernetes 仪表板。

我在候选人回答中寻找的内容:

我寻找那些建议使用仪表板和警报以保持主动性的候选人。

用于监控扩展的工具:

  • Prometheus/Grafana: 用于详细的指标和可视化。

  • Kubernetes 仪表板: 用于实时洞察。

  • 云提供商监控工具: AWS CloudWatch、GCP Monitoring 等。


http://www.ppmy.cn/embedded/160293.html

相关文章

【大数据技术】词频统计样例(hadoop+mapreduce+yarn)

词频统计(hadoop+mapreduce+yarn) 搭建完全分布式高可用大数据集群(VMware+CentOS+FinalShell) 搭建完全分布式高可用大数据集群(Hadoop+MapReduce+Yarn) 在阅读本文前,请确保已经阅读过以上两篇文章,成功搭建了Hadoop+MapReduce+Yarn的大数据集群环境。 写在前面 Wo…

【lua编程实操(一)】函数和闭包

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:lua从入门到精通⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学更多lua语言的知识   🔝🔝 lua编程实操 1. 函数的类值2. …

Axure设计元件库分享——SpringUI Web端动态交互元件库

在快节奏的Web设计与开发领域,设计师们总是在寻找那些能够助力他们快速构建出功能丰富且界面美观原型的工具。SpringUI,一个专为Web设计与开发领域打造的高质量、全面且易于使用的交互元件集合,正是这样一个能够满足设计师需求的优秀元件库。…

SQL Server的安装和简单使用

目录 一、SQL Server 1.1、简介 1.2、安装包 二、安装SQL Server 2.1、双击安装包 2.2、选择自己想要安装的位置 2.3、点击安装 2.4、安装完成之后会出现以下页面,按照序号依次点击 2.5、不用管密钥,点击下一步 2.6、选择【我接受】 2.7、是否…

【腾讯云】腾讯云docker搭建单机hadoop

这里写目录标题 下载jdk hadoop修改hadoop配置编写Dockerfile构建镜像运行镜像创建客户端 下载jdk hadoop wget --no-check-certificate https://repo.huaweicloud.com/java/jdk/8u151-b12/jdk-8u151-linux-x64.tar.gz wget --no-check-certificate https://repo.huaweicloud.…

2022年全国职业院校技能大赛网络系统管理赛项模块A:网络构建(样题3)-网络部分解析-附详细代码

目录 附录1:拓扑图 附录2:地址规划表 1.SW1 2.SW2 3.SW3 4.SW4 5.SW5 6.SW6 7.SW7 8.R1 9.R2 10.R3 11.AC1 12.AC2 13.AP2 14.AP3 15.EG1 16.EG2 附录1:拓扑图 附录2:地址规划表 设备

【目标检测】模型验证:K-Fold 交叉验证

K-Fold 交叉验证 1、引言1.1 K 折交叉验证概述 2、配置2.1 数据集2.2 安装包 3、 实战3.1 生成物体检测数据集的特征向量3.2 K 折数据集拆分3.3 保存记录3.4 使用 K 折数据分割训练YOLO 4、总结 1、引言 我们将利用YOLO 检测格式和关键的Python 库(如 sklearn、pan…

langchain教程-3.OutputParser/输出解析

前言 该系列教程的代码: https://github.com/shar-pen/Langchain-MiniTutorial 我主要参考 langchain 官方教程, 有选择性的记录了一下学习内容 这是教程清单 1.初试langchain2.prompt3.OutputParser/输出解析4.model/vllm模型部署和langchain调用5.DocumentLoader/多种文档…