k8s 常见面试题

  1. Kubernetes 是什么?它解决了什么问题?

              Kubernetes(简称K8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。它由Google开发并捐赠给Cloud Native Computing Foundation(CNCF)来进行维护。Kubernetes 构建在容器技术(如Docker)的基础上,并提供了一系列功能,使得在分布式环境中运行和管理容器化应用程序变得更加简单、高效和可靠。

              Kubernetes 主要解决了以下问题:

              1.自动化部署:Kubernetes 允许用户通过定义清晰的声明式配置,自动部署容器化应用程序。用户可以使用Kubernetes的对象(如Deployment、StatefulSet等)描述应用程序的期望状态,Kubernetes会自动确保系统状态与所定义的期望状态一致。

              2.水平扩展:Kubernetes可以根据应用程序的负载情况自动进行水平扩展。通过水平扩展,用户可以根据需要增加或减少容器副本数量,以满足不同负载下的性能要求。

              3.自我修复:Kubernetes可以自动监测容器运行状态,如果发现容器崩溃或出现故障,会自动进行重启,以确保应用程序的持续可用性。

              4.服务发现与负载均衡:Kubernetes提供了内建的服务发现和负载均衡机制,使得应用程序可以轻松地通过服务名称来进行访问,而无需关心后端容器的IP地址和端口。

              5.存储编排:Kubernetes支持各种类型的存储解决方案,并提供了持久化存储卷(Persistent Volume)的概念,使得应用程序可以在容器重启或迁移后保留数据。

              6.自动滚动更新:Kubernetes支持应用程序的滚动更新,可以逐步替换旧版本的容器,以实现应用程序的无缝升级。

              7.批处理与定时任务:Kubernetes不仅适用于长期运行的服务应用程序,还支持批处理任务和定时任务,如定时备份、定时清理等。

              总体来说,Kubernetes为开发者和运维人员提供了一个高度自动化、弹性可扩展、高度可靠的容器编排平台,大大简化了容器化应用程序的部署和管理,并帮助用户更好地利用容器技术实现云原生应用的构建和管理。

          2. Kubernetes 的主要组件有哪些?请简要介绍每个组件的作用。

什么是 Pod?Pod 的作用是什么?

什么是 Replication Controller 和 ReplicaSet?它们有什么区别?

什么是 Deployment?Deployment 与 Replication Controller/ReplicaSet 的区别是什么?

什么是 Service?Service 的作用是什么?它有哪些类型?

什么是 Namespace?它有什么用途?

Kubernetes 中的 ConfigMap 和 Secret 分别用于什么?它们的区别是什么?

什么是 Persistent Volume(PV)和 Persistent Volume Claim(PVC)?它们的关系是什么?

Kubernetes 中的存储类(Storage Class)是用来做什么的?

什么是 StatefulSet?与 Deployment 的区别是什么?

Kubernetes 中的 Horizontal Pod Autoscaler(HPA)是什么?它的工作原理是怎样的?

什么是 DaemonSet?它的作用是什么?

如何进行滚动更新(Rolling Update)和回滚(Rollback)?

什么是 liveness probe 和 readiness probe?它们的作用是什么?

如何进行配置管理,例如修改应用程序的配置?

如何在 Kubernetes 中进行多集群管理?

如何进行 K8s 集群的高可用性配置?

如何进行 Pod 网络通信?Kubernetes 中的网络模型是怎样的?

如何进行 Kubernetes 集群的扩展和缩减?

这些问题涵盖了 Kubernetes 的基本概念、核心组件、资源管理、网络配置等方面。在面试准备过程中,建议深入学习这些内容,并实践部署和管理 Kubernetes 集群以加深对 Kubernetes 的理解。同时,根据公司职位要求和面试通知的提示,进行针对性的学习和准备。

 
 
 
posted @ 2023-08-04 15:28  rainisraing  阅读(165)  评论(0编辑  收藏  举报