Kubernetes面试攻略:揭秘企业最爱问的几个问题!-中下

1、deployment 创建 pod 的流程是怎样的?

  • Kubectl 提交创建 Deployment 的命令,经过 API 服务器的认证与授权后,将 Deployment 数据存储到 Etcd 中,并初始化 Deployment 资源。
  • Deployment Controller 通过 List-Watch 机制监测到新的 Deployment,将其加入内部工作队列。发现该 Deployment 没有关联的 Pod 和 ReplicaSet,于是创建 ReplicaSet,再由 ReplicaSet Controller 创建 Pod。
  • 所有 Controller 正常工作后,将 Deployment、ReplicaSet、Pod 的状态更新到 Etcd。
  • Scheduler 通过 List-Watch 机制监测到新的 Pod,经过一系列的主机过滤和打分规则,将 Pod 绑定到合适的主机上。
  • 绑定结果存储到 Etcd。
  • Kubelet 每隔一段时间(默认 20 秒)向 API 服务器请求自己节点上需要运行的 Pod 清单,并启动或终止相应的 Pod。

2、你了解 HPA(Horizontal Pod Autoscaler)吗?它有哪些缺点?

HPA 是 Kubernetes 的自动扩缩容策略,可以根据 CPU、内存等资源的利用率来自动调整 Pod 的数量。其缺点包括:

  • 在访问量突增的情况下,如微博热搜,HPA 可能反应不够迅速,因为 Pod 是一台台扩容的。
  • 对于波动量较大的服务,HPA 可能会造成业务的抖动。
  • HPA 是被动的,无法进行提前扩容。
  • 有 5 分钟的安全时间,不适合访问量波动大的业务。

3、蓝绿发布和灰度发布在 K8s 中如何实现?

  • 蓝绿发布:通过 Deployment 部署两套环境(蓝环境和绿环境),然后通过修改 Service 或 Ingress 的规则来切换流量。
  • 灰度发布:可以通过 Ingress Controller 或 Istio 来实现,逐步将流量引导到新版本的服务上,实现平滑升级。

4、如果一个 Pod 创建过程中一直处于 Pending 状态,你的处理思路是什么?

  • 首先通过 kubectl describe pod <pod-name> 查看 Pod 的详细信息,了解 Pod 处于 Pending 状态的原因。
  • 然后通过 kubectl logs <pod-name> 查看 Pod 的日志,进一步定位问题。
  • 根据获取的信息,检查资源配额、镜像拉取、存储挂载等方面是否存在问题,并进行相应的处理。

5、K8s 如何实现持久化存储?有几种方式?

K8s 可以通过多种方式实现持久化存储,包括:

  • EmptyDir:临时存储卷,生命周期与 Pod 相同。
  • HostPath:将主机上的文件或目录挂载到 Pod 中。
  • PersistentVolume(PV)和 PersistentVolumeClaim(PVC):PV 是由管理员配置的存储资源,PVC 是用户对存储资源的请求。
  • StorageClass:动态创建 PV 的模板。
  • 外部存储系统:如 Ceph、NFS、GlusterFS 等,可以提供更强大的存储功能。

6、Service 的 Type 类型有几种?

  • ClusterIP:在集群内部访问的服务。
  • NodePort:可以在物理机上通过指定端口访问的服务。
  • ExternalName:将 Service 映射到一个外部域名。
  • LoadBalancer:使用云提供商的负载均衡器来暴露服务。

7、Ceph 架构是什么?

Ceph 是一个统一的分布式存储系统,支持三种接口:Object Storage、Block Storage 和 File System。其特点是高扩展性、高可靠性和高性能。Ceph 集群由 MON(监视器)、OSD(对象存储设备)和 MDS(元数据服务器,仅用于 CephFS)组成。

8、K8s 怎么对接 Ceph?

  • 可以将 Ceph RBD 或 CephFS 做成 PV,然后在 K8s 中创建对应的 PVC 来使用这些存储资源。
  • 还可以使用 StorageClass 来动态地从 Ceph Provisioner 创建 PV。

9、K8s 挂载 CephFS 和 Ceph RBD 的适用场景分析

  • K8s 挂载 CephFS:适用于需要跨节点共享文件系统的场景,如日志收集、配置共享等。因为 CephFS 是一个 POSIX 兼容的分布式文件系统,可以在多个节点之间共享数据。
  • K8s 挂载 Ceph RBD:适用于需要块级存储的场景,如数据库、虚拟机磁盘等。因为 Ceph RBD 提供的是块设备接口,可以像使用物理硬盘一样使用它。

10、K8s 有几种探测方式?分别描述下具体作用

  • LivenessProbe(存活性探测):用于检测容器是否正常运行。如果容器出现故障无法恢复,则 K8s 会重启该容器。这有助于确保应用程序的可用性。
  • ReadinessProbe(就绪性探测):用于检测容器中的应用程序是否已经准备好对外提供服务。

    在准备Kubernetes相关的面试时,不仅要对基础概念有深入的理解,还要能够将这些知识应用到实际场景中。通过对上述问题的深入学习和实践,你将能够更加自信地面对面试官,展现出你的专业素养和解决问题的能力。记住,面试不仅是对知识的检验,更是对你综合能力和应变能力的考察。希望这篇文章能够帮助你在Kubernetes相关的面试中脱颖而出,顺利拿到心仪的offer 。关注博主,博主持续更新哦

 

  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值