【Kubernetes】常见面试题汇总(十)

目录

[29.简述 Kubernetes 自动扩容机制?](#29.简述 Kubernetes 自动扩容机制?)

[30.简述 Kubernetes Service 类型?](#30.简述 Kubernetes Service 类型?)

[31.简述 Kubernetes Service 分发后端的策略?](#31.简述 Kubernetes Service 分发后端的策略?)

[32.简述 Kubernetes Headless Service ?](#32.简述 Kubernetes Headless Service ?)


29.简述 Kubernetes 自动扩容机制?

(1)Kubernetes 自动扩容机制:

Kubernetes 使用 Horizontal Pod Autoscaler(HPA)的控制器实现基于 CPU 使用率进行自动 Pod 扩缩容的功能。

② HPA 控制器周期性地监测目标 Pod 的资源性能指标,并与 HPA 资源对象中的扩缩容条件进行对比,在满足条件时对 Pod 副本数量进行调整。

(2)HPA 原理:

① Kubernetes 中的某个 Metrics Server(Heapster 或自定义 Metrics Server)持续采集所有 Pod 副本的指标数据。

② HPA 控制器通过 Metrics Server 的 APl(Heapster 的 API 或聚合 API)获取这些数据,基于用户定义的扩缩容规则进行计算,得到目标 Pod 副本数量。

③ 当目标 Pod 副本数量与当前副本数量不同时,HPA控制器就向 Pod 的副本控制器(Deployment、RC 或 ReplicaSet)发起 scale 操作,调整 Pod 的副本数量,完成扩缩容操作。


30.简述 Kubernetes Service 类型?

  • 通过创建 Service,可以为一组具有相同功能的容器应用提供一个统一的入口地址,并且将请求负载分发到后端的各个容器应用上。

  • 其主要类型有:

ClusterlP:虚拟的服务 IP 地址,该地址用于 Kubernetes 集群内部的 Pod 访问,在 Node 上 kube-proxy 通过设置的 iptables 规则进行转发。

NodePort:使用宿主机的端口,使能够访问各 Node 的外部客户端通过 Node 的 IP 地址和端口号就能访问服务。

LoadBalancer:使用外接负载均衡器完成到服务的负载分发,需要在 spec.status.loadBalancer 字段指定外部负载均衡器的 IP 地址,通常用于公有云。


31.简述 Kubernetes Service 分发后端的策略?

Service 负载分发的策略有:RoundRobin 和 SessionAffinity。

RoundRobin:默认为轮询模式,即轮询将请求转发到后端的各个Pod 上。

SessionAffinity:基于客户端 IP 地址进行会话保持的模式,即第 1 次将某个客户端发起的请求转发到后端的某个 Pod 上,之后从相同的客户端发起的请求都将被转发到后端相同的 Pod 上。


32.简述 Kubernetes Headless Service ?

  • 在某些应用场景中,若需要人为指定负载均衡器,不使用 Service 提供的默认负载均衡的功能,或者应用程序希望知道属于同组服务的其他实例。

- Kubernetes 提供了 Headless Service 来实现这种功能,即不为 Service 设置 ClusterlP(入口 IP 地址)仅通过 Labelselector 将后端的 Pod 列表返回给调用的客户端。

相关推荐
爱吃龙利鱼6 小时前
nginx实现https安全访问的详细配置过程
运维·nginx·安全·云原生·https
大白菜和MySQL8 小时前
rockylinux9.4单master节点k8s1.28集群部署
云原生·容器·kubernetes
玖石书8 小时前
Docker 容器网络技术
运维·docker·容器
向往风的男子8 小时前
【从问题中去学习k8s】k8s中的常见面试题(夯实理论基础)(三十)
学习·容器·kubernetes
爱吃番茄的小狐狸13 小时前
Docker镜像下载-使用github action- 解决无法下载docker镜像的问题
docker·容器·github
andy7_14 小时前
运行在docker环境下的图片压缩小工具
运维·docker·容器
七夜zippoe15 小时前
nacos和eureka的区别详解
云原生·eureka
唐大爹15 小时前
kubeadm方式安装k8s续:
云原生·容器·kubernetes
陈小肚15 小时前
openeuler 22.03 lts sp4 使用 kubeadm 部署 k8s-v1.28.2 高可用集群
kubernetes
ly143567861915 小时前
94 、k8s之rbac
云原生·容器·kubernetes