【K8s】K8s问答题

31. 详细说明 Ingress 的实现原理和它所实现的功能。

答:Ingress 是对集群中服务的外部访问进行管理的 API 对象,典型的访问方式是 HTTP

Ingress 公开了从集群外部到集群内服务的 HTTP HTTPS 路由,流量路由由Ingress 资源上定义的规则控制,Ingress 规则,将域名 www.testingress.com的流量路由到 ingressservice

为了让 Ingress 资源工作,集群必须有一个正在运行的 Ingress 控制器。

Ingress 可以提供负载均衡、SSL 终结和基于名称的虚拟托管。 

32. Kubernetes 对集群 Pod 和容器健康状态如何进行监控和检测的。

答:Pod 的健康检查使用存活探针(liveness probes)和就绪性探针(readiness probes)来实现。

33. 解释 LivenessProbes 探针的作用及其适用场景。

答:Liveness Probes(存活探针)用来检测什么时候要重启容器。

例如,存活探针可以捕捉到死锁 (应用程序在运行,但是无法继续执行后面的步骤)。在这种情况下重启容器有助于让应用程序在有问题的情况下变得可用。

34. 解释 ReadinessProbe 探针的作用及其适用场景。

答:Readiness Probes(就绪探针)可以知道容器什么时候准备好了并可以开始接受请求流量,只有当一个 Pod 内的所有容器都准备好了,才能把这个 Pod 看作就绪。

- 如果要在pod就绪时才开始向 Pod 发送请求流量,可以指定就绪态探针。

- 如果应用程序对后端服务有严格的依赖性,可以同时实现存活态和就绪态探针。 

35. 解释 StartupProbe 探针的作用及其适用场景。

答:Startup Probes(启动探针)可以知道应用程序容器什么时候启动了。用来控制容器在启动成功 后再进行存活性和就绪检查,确保这些存活、就绪探针不会影响应用程序的启动。(确保在启动过程中不会被杀死)

启动探针用于对慢启动容器进行存活性检测,避免它们在启动运行之前就被杀掉。

如果容器需要在启动期间加载大型数据、配置文件或执行迁移,可以使用启动探针。

36. 说明 K8s Pod 级别的 Graceful Shutdown。 优雅退出

Kubernetes 1.22 开始,terminationGracePeriodSeconds 特性被开启,在杀死容器时,Pod 停止获得新的流量。但在 Pod 中运行的容器不会受到影响,直到超时发生。可以在 Pod 级别或者容器下具体的探针级别设定,探针会优先和覆盖 Pod 级别。

37. 解释什么是 Kubernetes Volume

答:容器中的文件在磁盘上是临时存放的,这给在其中运行的某些应用程序会带来一些问题,其一是当容器在崩溃时,kubelet 会以干净的状态重启重启容器,原有容器中的文件会丢失。第二个问题是, 我们会在同一 Pod 中运行多个容器,而这些容器之间会有共享文件的情况出现。

解决这些问题的办法是使用 Kubernetes Volume

Kubernetes 支持很多类型的卷。Pod 可以同时使用任意数目的卷类型。临时卷类型的生命周期与 Pod 相同,但持久卷可以比 Pod 有更长的存活期。当 Pod 被删除时,临时卷也会被删除,但持久卷会保留在磁盘上。对于给定 Pod 中任何类型的卷,当该 Pod 中的任何容器重启期间 Pod 中的数据都不会丢失。

38. 解释 emptyDir 卷类型的特征。

答:Pod 被分派到某个 Node 上时,emptyDir 卷就会被创建,并且在 Pod 运行期间一直会存在。就像其名称表示的那样,emptyDir 卷最初是的。尽管 Pod 中的容器挂载 emptyDir 卷的路径可能会有不同,但这些容器都可以读写 emptyDir 中相同的文件。

Pod 因为某些原因被从节点上删除时,emptyDir 卷中的数据也会被永久删除容器崩溃并不会导致 Pod 从节点上移除,因此在容器崩溃期间 emptyDir 卷中的数据是安全的。

39. 解释 hostPath 卷类型的特征。

答:hostPath 卷能将主机节点文件系统上的文件或目录直接挂载到 Pod 。但要注意的是,要尽可能避免使用这个类型的卷,它会限制 Pod 的迁移性。

40. 解释 PV 卷类型的特征,

答:PVPersistentVolume持久卷),是集群中的一块存储,可以由管理员事先供应,或者使用存储类(Storage Class)来动态供应。PV 持久卷和节点一样,都是集群资源PV 持久卷和普通的Volume 类似,也是使用卷插件来实现的,只是它拥有独立于任何使用 PV Pod 的生命周期

41. 什么是 PVC,如何使用它。

答:PVCPersistentVolumeClaim持久卷申领)表达的是用户对存储的请求。概念上与 Pod 类似。

Pod 会耗用节点资源,而 PVC 申领会耗用 PV 资源。Pod 可以请求特定数量的资源(CPU 和内存);同样 PVC 申领也可以请求特定的大小和访问模式。

Pod PVC 申领当做存储卷来使用。集群会检视 PVC 申领,找到所绑定的卷,并为 Pod 挂载该卷。 对于支持多种访问模式的卷,用户要在 Pod 中以卷的形式使用申领时指定期望的访问模式。一旦用户有了申领对象并且该申领已经被绑定,则所绑定的 PV 卷在用户仍然需要它期间一直属于该用户。

42. PV 有哪几种访问模式,详细说明。

答:PV 的访问模式有四种:

- ReadWriteOnce:卷可以被一个节点以读写方式挂载。该访问模式也允许运行在同一节点上的多个 Pod 访问卷。

- ReadOnlyMany:卷可以被多个节点以只读方式挂载。

- ReadWriteMany:卷可以被多个节点以读写方式挂载。

- ReadWriteOncePod:卷可以被单个 Pod 读写方式挂载。

43. 解释 PV 回收策略。 

答:PV 的回收策略有:

- Retain:需要手动回收  

- Recycle:执行的基本操作是 rm -rf /thevolume/*

- Delete:对于支持 Delete 回收策略的卷插件,删除动作会将 PersistentVolume 对象K8s中移除,同时也会从外部基础设施(如 AWS EBS GCE PD 卷)中移除所关联的存储资源。

44. 如何将特定 Pod 调度到指定的节点?

答:可以使用下列方法中的任何一种来选择 K8s 对特定 Pod 的调度:

- 节点标签匹配的 nodeSelector

- 亲和性与反亲和性

- nodeName 字段

- Pod 拓扑分布约束 

45. 什么是节点的亲和性?

答:节点亲和性(Node Affinity)是 Pod 的一种属性,它使 Pod 被吸引到一类特定的节点(可能出于一种偏好,也可能是硬性要求)。节点亲和性概念上类似于nodeSelector,可以根据节点上的标签来约束 Pod 可以调度到哪些节点上。但不一定是强制的。

46. 什么是污点,它的主要用途是什么?

答:与节点亲和性不同,污点(Taint)使得节点能够排斥一类特定的 Pod

污点和容忍度相互配合,可以用来避免 Pod 被分配到不合适的节点上。每个节点上都可以应用一个或多个污点,这意味着对于那些不能容忍这些污点的 Pod,是不会被该节点接受的。

容忍度(Toleration)是应用于 Pod 上的。容忍度允许调度器调度带有对应污点的 Pod。容忍度允许调度但并不保证调度:作为其功能的一部分,调度器也会评估其他参数

47. 解释 ConfigMap 的作用。

答:ConfigMap 是一个 API 对象,用来将非机密性的数据保存到键值对中。使用时,Pod 可以将其用作环境变量、命令行参数或者存储卷中的配置文件。使用 ConfigMap 来将应用的配置数据和应用程序代码分开。提高了pod的可移植性ConfigMap 中保存的数据不可超过 1MiB

48. Secret ConfigMap 相比较有哪些优点。

答:Secret 的功能类似于 ConfigMap,但被设计专门用于保存机密数据,例如密码、令牌或密钥对象。 使用 Secret 意味着可以不需要在应用程序代码中包含机密数据,用以增强此类数据的安全性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值