查看: 43|回复: 0

Docker + K8s 容器运维高频面试题(含标准答案,运维面试直接背)

[复制链接]

22

主题

0

回帖

116

积分

管理员

积分
116
发表于 2026-5-14 16:54:58 | 显示全部楼层 |阅读模式
一、Docker 基础面试题


1. 什么是 Docker?和虚拟机区别?


Docker:基于 Linux 内核 Namespace 资源隔离、Cgroups 资源限制、联合文件系统的容器虚拟化技术,秒级启动、轻量。

Docker 容器 vs 虚拟机

表格





[td]
对比
Docker 容器
虚拟机 VM
虚拟化层级操作系统级硬件级
内核共用宿主机内核独立完整内核
启动速度秒级分钟级
资源占用极小占用高
可移植性跨环境一致笨重迁移难





2. Docker 核心三大组件


  • 镜像 Image:只读模板,运行容器的模板
  • 容器 Container:镜像运行实例,可读写
  • 仓库 Registry:存放镜像(Docker Hub、私有仓库 Harbor)

3. Docker 核心底层技术


  • Namespace:做隔离(PID、网络、挂载、用户、进程等)
  • Cgroups:做资源限制(CPU、内存、磁盘 IO)
  • UnionFS:分层镜像、写时复制,节省空间

4. 镜像分层原理


镜像采用分层只读结构:基础镜像层→依赖层→应用层,容器启动会加一层可读可写容器层。
优点:复用层、节省磁盘、拉取更快。


5. Docker 常用命令面试必问


bash


运行






# 镜像docker images / docker rmi / docker pull / docker build# 容器docker run / docker ps -a / docker exec -it 容器名 / docker start/stop/restart# 日志docker logs -f 容器名# 端口/IPdocker port 容器名docker inspect 容器名# 删除docker rm 容器docker system df  # 查看磁盘占用docker system prune  # 清理无用镜像容器





6. docker run 常用参数


  • -d 后台运行
  • -p 宿主机端口:容器端口 端口映射
  • --name 指定容器名
  • -v 宿主机目录:容器目录 数据卷挂载
  • --restart=always 开机自启
  • -e 设置环境变量

7. Docker 数据持久化方式


  • 数据卷 -v:宿主机和容器共享数据,生命周期独立容器
  • 绑定挂载:直接挂载宿主机目录
  • 容器数据卷:容器之间共享数据

8. Dockerfile 常用指令


FROM 基础镜像
MAINTAINER 作者
RUN 构建时执行命令
COPY/ADD 复制文件到镜像
WORKDIR 设置工作目录
EXPOSE 声明端口
ENV 环境变量
CMD/ENTRYPOINT 容器启动命令


CMD 和 ENTRYPOINT 区别

  • CMD:可被 run 后面命令覆盖
  • ENTRYPOINT:不会被覆盖,适合固定启动脚本

9. 容器日志怎么排查?日志驱动


  • 实时看日志:docker logs -f 容器ID
  • 日志驱动:json-file、local、syslog、fluentd
  • 生产要做日志切割,避免容器日志打满磁盘

10. Docker 网络模式


  • bridge 默认,同一网桥容器互通
  • host 共用宿主机网络,无端口映射
  • none 无网络
  • container 复用其他容器网络
  • 自定义网桥 生产推荐,隔离性更好



二、Kubernetes K8s 核心面试题


1. 什么是 K8s?作用


K8s 是容器编排管理平台,用于自动化部署、扩缩容、自愈、滚动更新、负载均衡、管理大规模容器集群。

2. K8s 集群架构组成


控制平面 Master


  • kube-apiserver:集群入口,所有操作入口,鉴权、API 接口
  • etcd:集群所有数据存储,键值数据库
  • kube-scheduler:调度器,选择合适 Node 部署 Pod
  • kube-controller-manager:控制器,维持集群期望状态

工作节点 Node


  • kubelet:节点代理,管理本节点 Pod 生命周期
  • kube-proxy:网络代理,负责 Service 负载均衡、转发规则
  • 容器运行时:docker/containerd

3. K8s 核心资源对象


  • Pod:最小调度单元,一个或多个容器组成
  • Deployment:管理无状态应用,副本控制、滚动更新、回滚
  • StatefulSet:有状态应用(MySQL、Redis 集群),稳定网络、稳定存储
  • Service:Pod 访问入口,固定 IP,负载均衡
  • Ingress:七层反向代理、域名路由、限流、SSL 证书
  • ConfigMap/Secret:配置文件、密码密钥管理
  • Namespace:命名空间,环境隔离(开发 / 测试 / 生产)

4. Pod 是什么?为什么不直接跑容器?


Pod 是 K8s 最小原子单元,一个 Pod 共享网络、存储、进程空间;
业务容器 + 辅助容器在同一 Pod,方便共享资源、日志收集、监控。


5. Pod 生命周期状态


Pending → Running → Succeeded → Failed → Unknown

6. Deployment 工作原理


  • 定义副本数 replicas
  • 控制器保证始终维持指定 Pod 数量
  • 节点宕机自动重建 Pod(自愈)
  • 支持滚动更新、版本回滚、水平扩缩容

7. Service 三种类型


  • ClusterIP 默认,集群内部访问
  • NodePort 宿主机端口暴露,外部可访问
  • LoadBalancer 云厂商负载均衡
  • ExternalName 域名映射

8. Ingress 和 Service 区别


  • Service:四层 TCP/UDP 负载均衡,无域名路由
  • Ingress:七层 HTTP/HTTPS,支持域名、路径转发、SSL、限流,生产统一入口

9. K8s 调度流程


  • 用户提交 yaml 到 apiserver
  • 写入 etcd
  • scheduler 筛选符合条件 Node(资源、标签、亲和性)
  • 调度绑定 Node
  • 对应节点 kubelet 创建 Pod 和容器

10. 滚动更新 vs 重建更新


  • 滚动更新:逐个启动新 Pod→销毁旧 Pod,业务不中断(默认)
  • 重建更新:先删所有旧 Pod,再建新 Pod,业务中断

11. K8s 自愈能力体现在哪里


  • Pod 异常自动重启
  • 节点宕机,Pod 自动调度到其他节点
  • 副本不足自动补充
  • 健康检查探针异常自动重建

12. 两种探针 就绪探针 & 存活探针


  • LivenessProbe 存活探针:检测容器是否挂了,异常就重启 Pod
  • ReadinessProbe 就绪探针:检测容器是否就绪,没就绪不转发流量

检测方式:httpGet、tcpSocket、exec 命令

13. ConfigMap 和 Secret 区别


  • ConfigMap:存放普通配置文件、明文配置
  • Secret:存放密码、密钥、证书,做简单加密

14. K8s 网络模型要求


所有 Pod IP 互通,不做 NAT;
常用网络插件:Calico、Flannel


15. 生产环境 K8s 故障排查思路


  • kubectl get nodes 看节点状态
  • kubectl get pods -n 命名空间 看 Pod 状态
  • kubectl describe pod  pod名 看事件原因
  • kubectl logs  pod名 看容器日志
  • kubectl exec 进容器内部排查网络、配置
  • 检查资源配额、镜像拉取、存储挂载、网络插件



三、Docker & K8s 运维面试常问场景题


  • 容器启动失败怎么排查?
    看日志、看 describe 事件、镜像是否存在、端口冲突、挂载目录权限、资源限制过低。
  • Pod 一直处于 Pending 状态原因?
    资源不足、节点标签不匹配、镜像拉取失败、存储 PVC 未绑定、调度策略限制。
  • K8s 怎么实现应用灰度发布?
    Deployment 滚动更新、Ingress 流量切分、多版本 Deployment 按比例分流。
  • 为什么生产要用 Harbor 私有镜像仓库?
    镜像私有管理、漏洞扫描、版本管理、镜像复制、权限控制、配合 K8s 拉取稳定。


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注公众号

相关侵权、举报、投诉及建议等,请发 E-mail:admin@discuz.vip

Powered by Discuz! X5.0 © 2001-2025 Discuz! Team.|蜀ICP备2025161238号-5

在本版发帖
关注公众号
QQ客服返回顶部
快速回复 返回顶部 返回列表