关于k8s Kubernetes的10个面试题

1. 什么是Kubernetes?它的核心功能是什么?

答案:Kubernetes是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用。核心功能包括:

  • 自动化容器调度与负载均衡
  • 自我修复(自动重启失败的容器)
  • 水平扩展(根据负载动态调整实例数量)
  • 服务发现与负载均衡
  • 滚动更新与回滚

2. 解释Pod和Deployment的区别

答案

  • Pod:K8s的最小调度单元,包含一个或多个共享网络/存储的容器。
  • Deployment:更高层抽象,用于管理Pod的声明式更新(如滚动升级)、副本数和回滚,确保应用的高可用性。

3. 如何排查Pod一直处于Pending状态的问题?

答案:可能原因及排查步骤:

  1. 资源不足kubectl describe pod <pod-name>查看事件,检查节点资源是否足够。
  2. 节点选择器/污点 :检查Pod的nodeSelectortolerations是否匹配节点标签。
  3. 存储卷挂载失败:检查PV/PVC是否绑定成功。

4. 什么是Service?ClusterIP、NodePort和LoadBalancer有什么区别?

答案

  • Service :为一组Pod提供稳定的网络端点。
    • ClusterIP:默认类型,仅在集群内部访问。
    • NodePort:通过节点IP和静态端口暴露服务(范围30000-32767)。
    • LoadBalancer:通过云提供商的负载均衡器对外暴露服务。

5. 如何在不中断服务的情况下更新Deployment的镜像版本?

答案:使用滚动更新策略:

bash 复制代码
kubectl set image deployment/<deployment-name> <container-name>=<new-image> --record

或修改Deployment的YAML文件后apply。K8s会逐步替换旧Pod,确保服务可用。


6. 解释ConfigMap和Secret的作用及区别

答案

  • ConfigMap:存储非敏感配置(如环境变量、配置文件)。
  • Secret :存储敏感数据(如密码、密钥),以Base64编码(需注意编码≠加密)。
    两者均可通过环境变量或卷挂载到Pod中。

7. 什么是Ingress?它与Service有何不同?

答案

  • Ingress:管理外部访问集群服务的规则(如HTTP路由、域名绑定),需配合Ingress Controller(如Nginx、Traefik)使用。
  • Service:提供内部服务发现和负载均衡,Ingress是其上层代理。

8. 如何限制Pod的资源使用?

答案 :在Pod的resources字段中设置请求(requests)和限制(limits):

yaml 复制代码
resources:
  requests:
    cpu: "100m"
    memory: "256Mi"
  limits:
    cpu: "500m"
    memory: "1Gi"

9. 解释K8s的架构,包括Master和Worker节点组件

答案

  • Master节点
    • API Server:处理所有集群操作请求。
    • Scheduler:将Pod调度到合适节点。
    • Controller Manager:维护集群状态(如副本数)。
    • etcd:键值存储集群数据。
  • Worker节点
    • kubelet:管理Pod生命周期。
    • kube-proxy:处理网络规则。
    • 容器运行时(如Docker/containerd)。

10. 如何备份和恢复K8s集群?

答案

  1. 备份etcd

    bash 复制代码
    etcdctl snapshot save /backup/etcd-snapshot.db
  2. 备份资源YAML

    bash 复制代码
    kubectl get all --all-namespaces -o yaml > cluster-backup.yaml
  3. 恢复 :通过etcd快照或重新apply YAML文件。


附加建议

  • 根据面试者经验调整难度(如问Helm、Operator、HPA等进阶问题)。
  • 结合场景题考察实战能力(如"如何设计一个高可用K8s集群?")。

希望这些问题能帮助你准备面试!

相关推荐
运维老郭5 小时前
【K8s运维实战】Kubernetes临时存储卷实战:emptyDir核心用法与gitRepo弃用迁移指南
运维·云原生·kubernetes
AAA@峥9 小时前
容器数据不丢失:Docker 分层存储 + Volume 共享、备份迁移完整指南
运维·docker·容器
十年磨一剑~10 小时前
docker 为何每次 docker tag才能 docker push
docker·容器·eureka
gs8014012 小时前
记一次多 Agent 架构在单节点 K8s 触发的 PID 耗尽与 Pod 驱逐(Evicted)大摸排
容器·架构·kubernetes
bukeyiwanshui13 小时前
20260701 k8s Metric Server
容器·贪心算法·kubernetes
江湖有缘13 小时前
基于Docker环境部署tillywork开源工作管理工具
docker·容器·开源
鸿儒51715 小时前
MR-50国产化GPU docker配置方法
docker·容器·mr
Zhu75817 小时前
在k8s集群部署ApacheHadoop单节点单数据副本
云原生·容器·kubernetes
Akamai中国17 小时前
Akamai收购安全企业浏览器提供商LayerX
人工智能·云原生·云计算·云服务