25. 说明Job与CronJob的功能。
答:Job:一次性作业,处理短暂的一次性任务,仅执行一次,并保证处理的一个或者多个 Pod 成功结束。
CronJob:周期性作业,可以指定每过多少周期执行一次任务。
26. Kubernetes如何在集群的Pod之间提供网络服务?
答:K8s 使用 Service 让一组 Pod 可在网络上被访问并让客户端就能与之交互。
Service API 是 K8s 的组成部分,它是将运行在一个或一组 Pod 上的网络应用程序公开为网络服务的方法。每个 Service 对象定义端点的一个逻辑集合(通常这些端点就是 Pod)以及如何访问到这些 Pod 的策略。
27. 解释iptables和IPVS代理模式Service的区别。
答:iptables:iptables 模式适合小规模集群,实现简单且系统开销低,但扩展性和性能有限
IPVS:IPVS 模式基于哈希表和专用负载均衡模块,在延迟、吞吐量、扩展性和策略丰富度上更优,适合大规模集群和高并发场景。
28. 举例说明ClusterIP类型Service的用法。
答:ClusterIP 类型服务发现通过集群的内部 IP 暴露服务,选择该值时服务只能够在集群内部访问。这也是默认的 ServiceType 。
-比如,创建服务,对外提供8000端口,并把流量引流到具有 app:nginx 的后端80端口上。这个场景下,在主机 shell 下是不能直接使用Pod 的 IP 访问nginx,需要在 Pod IP(ClusterIP)后添加8000端口。
29. 举例说明NodePort类型Service的用法。
答:NodePort 类型服务发现是通过每个节点上的 IP 和静态端口(NodePort)暴露服务。NodePort 服务会路由到自动创建的 ClusterIP 服务,通过请求<节点 IP>:<节点端口>,就可以从集群的外部访问一个 NodePort 服务。
-比如,NodePort 会在节点的特定端口上开通服务,指定的端口为31788:这个场景下,在主机的IP后添加31788端口就可以访问到Pod。
30. 举例说明Headless类型Service的用法。
答:在Headless类型的Service中,Pod 创建时不会直接返回Pod的Service IP,也就是不提供Pod的ClusterIP,而是直接返回众多Pod的IP。这种场景下,需要进入Pod内部用集群内的 DNS 进行访问测试。
31. 详细说明Ingress的实现原理和它所实现的功能。
答:- Ingress 是对集群中服务的外部访问进行管理的 API 对象,典型的访问方式是 HTTP。
- Ingress 可以提供负载均衡、SSL 终结和基于名称的虚拟托管。
- Ingress 公开了从集群外部到集群内服务的 HTTP 和 HTTPS 路由,流量路由由 Ingress 资源上定义的规则控制。 为了让 Ingress 资源工作,集群必须有一个正在运行的 Ingress 控制器。
32. Kubernetes对集群Pod和容器健康状态如何进行监控和检测的。
答:Pod 的健康检查使用存活探针(liveness probes)和就绪性探针(readiness probes)来实现,启动探针来进行的。容器级别的,是由kubelet来执行的。
33. 解释LivenessProbes探针的作用及其适用场景。
答:用来检测什么时候要重启容器。例如,存活探针可以捕捉到死锁在这种情况下重启容器有助于让应用程序在有故障时变得可用。
适用于应用进程虽然仍在运行(容器未崩溃),但已无法正常响应请求或执行核心功能的情况。
34. 解释ReadinessProbe探针的作用及其适用场景。
答:可以知道容器什么时候处于就绪状态并可以接受请求流量,只有当一个Pod内的所有容器都准备好了,才能把这个 Pod 看作就绪状态。
适用于需要控制流量路由、确保服务质量的各类场景,通过精准控制流量路由,确保只有真正准备就绪的容器才会接收请求。用于处理启动时间较长的应用程序,确保应用在完全启动之前不会因livenessProbe的失败而被重启。
35. 解释StartupProbe探针的作用及其适用场景。
答:专门用于检测容器内应用是否完成启动过程的机制。它解决了传统存活探针(LivenessProbe)和就绪探针(ReadinessProbe)在处理启动缓慢容器时的局限性,确保慢启动容器有足够的时间完成初始化。
适用场景:适合那些启动过程较长或启动时间不稳定的应用,对于大型应用、初始化任务复杂或启动时间不稳定的应用,配置StartupProbe可以显著提高部署可靠性,确保应用有足够时间完成初始化再进入正常的健康检查周期。