k8s面试常问问题
Kubernetes(简称K8s)是一个开源的容器编排系统,它在面试中经常被问到,以下是一些常见的面试问题:
基本问题
- K8s是什么? K8s是一个开源的容器编排系统,用于管理容器化的应用,提供应用部署、规划、更新和维护的机制13。
- K8s与Docker Swarm的区别 包括安装复杂度、GUI、扩展性、自动扩展、负载均衡、回滚更新和数据卷等方面3。
- K8s与Docker的关系 Docker为容器提供生命周期管理,而K8s则负责容器之间的通信和编排3。
架构相关问题
- K8s的组件有哪些,作用分别是什么?K8s主要由master节点和node节点构成,master节点负责管理集群,node节点是容器应用真正运行的地方1。
- Master节点包含的组件有kube-api-server、kube-controller-manager、kube-scheduler、etcd。Node节点包含的组件有kubelet、kube-proxy、container-runtime1。
场景相关问题
- 在主机部署应用与在容器上部署应用的异同点3。
进阶问题
面试技巧
- 准备K8s面试时,了解其核心组件及其作用是基础6。
- 掌握K8s的基本概念、架构、特性和操作命令,能够帮助应聘者在面试中表现出色。
其他资源
- 对于23届校招的应聘者,可以关注相关的内推汇总和面试问题答案,以便更好地准备面试7。
这些问题覆盖了K8s的基础知识、架构理解、场景应用和进阶技能,是面试准备的重要参考。
Kubernetes的自动扩展是如何工作的?
Kubernetes的自动扩展主要通过水平自动扩展(Horizontal Pod Autoscaler,HPA)来实现,它可以根据CPU使用率或其他选择的度量标准来自动调整Pod的数量。此外,还可以使用集群自动伸缩(Cluster Autoscaler)来根据需要增加或减少集群中的节点数量。"在 Kubernetes 中,自动伸缩功能包括:Pod 水平自动伸缩(Horizontal Pod Autoscaler,HPA)Pod 垂直自动伸缩(Vertical Pod Autoscaler,VPA) 集群自动伸缩"8。自动扩展功能通过平衡和优化资源分配,既能应对业务高峰期的资源需求,也能在业务低谷期节省资源和成本。"Kubernetes Autoscaling 是 Kubernetes 容器编排系统中的一项动态功能,可以根据工作负载需求自动调整计算资源"10。
Docker Swarm与Kubernetes在负载均衡方面有哪些不同?
Docker Swarm与Kubernetes在负载均衡方面的主要区别在于,Docker Swarm能够自动在集群中的不同容器之间进行负载均衡,而Kubernetes需要人工介入进行不同Pod中的不同容器之间的流量负载均衡。"Docker Swarm可以在集群中的不同容器之间做自动化负载均衡",相比之下,"不同pod中的不同容器之间的流量需要人工介入进行负载均衡"3。这表明Docker Swarm在负载均衡方面提供了更为自动化的解决方案,而Kubernetes则提供了更多的灵活性和控制能力。
Kubernetes中的健康检查是如何实现的?
Kubernetes中的健康检查主要通过存活性探针(liveness probes)和就绪性探针(readiness probes)来实现。存活性探针用于确定容器是否存活,如果探针失败,Kubernetes会根据配置的策略重启容器。就绪性探针则用于确定容器是否准备好服务请求,如果探针失败,Kubernetes会从服务发现中暂时移除该容器。"Kubernetes中的健康检查主要使用 就绪性探针(readinessProbes)和 存活性探针(livenessProbes)来实现"28。这些探针可以是HTTP GET请求、TCP握手或执行容器内命令,提供了灵活的方式来监测容器的健康状态。
Kubernetes的Dashboard提供了哪些功能?
Kubernetes的Dashboard提供了一个基于Web的用户界面,使得用户可以轻松地与Kubernetes集群进行交互。通过Dashboard,用户可以部署和管理容器化应用、诊断问题以及管理集群资源。"Dashboard是一个基于Web的界面,允许用户通过简单的操作来管理Kubernetes集群"34。用户可以使用Dashboard来创建、编辑和删除Kubernetes资源,例如Pods、Services、Deployments等。此外,Dashboard还提供了集群的健康状况和资源使用情况的实时监控。
在使用Kubernetes时,如何进行容器的日志收集和监控?
在使用Kubernetes时,可以通过多种方式进行容器的日志收集和监控。日志管理可以通过kubectl logs
命令获取指定Pod的日志,或者使用Sidecar的streaming容器将日志输出到stdout,再通过stdout写入到相应的日志文件中。监控管理可以使用kube-apiserver的/metrics端点获取集群的各种指标数据,或者使用Prometheus进行监控数据的采集和存储,并使用Grafana进行可视化展示。"Kubernetes提供了灵活的日志和监控管理机制,使得用户可以根据自己的需求进行定制化的日志和监控管理"40。此外,还可以使用Heapster对Kubernetes集群进行监控数据的采集和存储。
尼恩面试宝典专题38:K8S面试题(史上最全、持续更新)1 | K8S面试题宝典 尼恩提供史上最全K8S面试题,每月更新。 |
k8s面试中最常见的50个问题(翻译)3 | k8s面试50问 涵盖基本到架构,场景问题,多选题。 |
k8s有哪些特性4 | k8s特性解析 包括自我修复、健康检测、负载均衡等。 |
Kubectl与Api Server的角色和功能5 | K8S命令行与API Kubectl操作集群,Api Server资源操作入口。 |
Kubernetes核心组件及其作用6 | K8S核心组件 描述各组件基本职责与功能。 |
k8s面试常问问题及23届校招内推汇总7 | k8s校招面试题 提供面试问题答案,校招内推信息汇总。 |
Kubernetes1 | 容器编排系统 用于管理容器化应用的开源系统,提供应用部署、规划、更新、维护机制。 |
Docker Swarm3 | 容器编排工具 与k8s相比,安装简单,集群健壮性较低,具有自动化负载均衡功能。 |
Kubectl5 | 命令行工具 作为K8s集群操作的入口,用于资源操作和管理。 |
Api Server5 | K8s架构组件 作为资源操作的桥梁,提供认证、授权、访问控制等。 |