31. Kubernetes 中的 Sidecar 模式是什么?
答案:
-
Sidecar 模式:是一种设计模式,其中在同一个 Pod 中运行一个辅助容器(Sidecar)来增强主容器(Main Container)的功能。
-
Sidecar 容器通常用于日志收集、监控、代理等任务,与主容器共享网络和存储卷。
32. Kubernetes 中的 Pod 亲和性和节点亲和性有什么区别?
答案:
-
Pod 亲和性(Pod Affinity):用于定义 Pod 之间的亲和性规则,确保 Pod 调度到特定的节点或与其他 Pod 一起调度。
-
节点亲和性(Node Affinity):用于定义 Pod 与节点之间的亲和性规则,确保 Pod 调度到具有特定标签的节点上。
33. Kubernetes 中的 PersistentVolume(PV)和 PersistentVolumeClaim(PVC)的生命周期是什么?
答案:
-
PersistentVolume(PV) 的生命周期:
-
Provisioning:管理员创建 PV。
-
Binding:PVC 绑定到合适的 PV。
-
Using:Pod 使用绑定的 PVC。
-
Releasing:Pod 删除 PVC,PV 进入释放状态。
-
Reclaiming:管理员决定如何回收 PV,可以是保留、删除或回收。
-
34. Kubernetes 中的 StorageClass 是什么?
答案:
-
StorageClass:是一种抽象,用于定义不同类型的存储(如 SSD、HDD 等)。
-
StorageClass 允许用户动态创建 PersistentVolume(PV),而不需要预先创建 PV。
-
StorageClass 通常与云平台的存储服务(如 AWS EBS、GCP Persistent Disk 等)结合使用。
35. Kubernetes 中的 Pod 优先级和抢占(Pod Priority and Preemption)是什么?
答案:
-
Pod 优先级(Pod Priority):用于定义 Pod 的优先级,高优先级的 Pod 可以抢占低优先级的 Pod 的资源。
-
抢占(Preemption):当高优先级的 Pod 无法调度时,Kubernetes 可以抢占低优先级的 Pod 的资源,以确保高优先级的 Pod 能够调度。
36. Kubernetes 中的 NetworkPolicy 是什么?
答案:
-
NetworkPolicy:是一种用于定义 Pod 之间网络流量的访问控制规则的机制。
-
NetworkPolicy 允许你定义哪些 Pod 可以相互通信,哪些 Pod 不能相互通信。
-
NetworkPolicy 通常与 CNI 插件(如 Calico、Cilium 等)结合使用。
37. Kubernetes 中的 ServiceAccount 是什么?
答案:
-
ServiceAccount:是 Kubernetes 中用于为 Pod 提供身份验证和授权的机制。
-
ServiceAccount 允许 Pod 访问 Kubernetes API,并执行特定的操作。
-
ServiceAccount 通常与 RBAC(Role-Based Access Control)结合使用,定义 Pod 的权限。
38. Kubernetes 中的 PodDisruptionBudget(PDB)是什么?
答案:
-
PodDisruptionBudget(PDB):是一种用于定义应用程序在自愿中断(如节点维护)期间的最小可用 Pod 数量的机制。
-
PDB 确保在自愿中断期间,应用程序的可用性不会低于定义的最小值。
39. Kubernetes 中的 CSI(Container Storage Interface)是什么?
答案:
-
CSI(Container Storage Interface):是一个规范,定义了容器运行时和存储插件之间的接口。
-
Kubernetes 使用 CSI 插件来实现动态存储卷的创建、挂载、卸载等功能。
-
CSI 插件允许 Kubernetes 支持多种存储后端,如 AWS EBS、GCP Persistent Disk、Ceph 等。
40. Kubernetes 中的 Custom Controller 是什么?
答案:
-
Custom Controller:是一种用于扩展 Kubernetes 功能的机制。
-
Custom Controller 通过监听 Kubernetes API 中的资源变化,并根据自定义逻辑调整集群状态。
-
Custom Controller 通常与 CRD(Custom Resource Definition)结合使用,实现自定义资源的管理。
41. Kubernetes 中的 Admission Controller 是什么?
答案:
-
Admission Controller:是一种用于在对象持久化之前拦截 Kubernetes API 请求的机制。
-
Admission Controller 可以用于验证、修改或拒绝 API 请求,如强制执行安全策略、注入默认值等。
-
Kubernetes 内置了多个 Admission Controller,如
NamespaceLifecycle
、LimitRanger
、ResourceQuota
等。
42. Kubernetes 中的 Custom Metrics API 是什么?
答案:
-
Custom Metrics API:是一种用于暴露自定义指标的 API,供 Horizontal Pod Autoscaler(HPA)使用。
-
Custom Metrics API 允许 HPA 根据自定义指标(如请求速率、错误率等)自动调整 Pod 副本数量。
-
Custom Metrics API 通常与 Prometheus Adapter 等监控系统结合使用。
43. Kubernetes 中的 Pod 安全策略(Pod Security Policy)是什么?
答案:
-
Pod 安全策略(Pod Security Policy):是一种用于定义 Pod 安全要求的机制。
-
Pod 安全策略可以限制 Pod 的权限,如禁止特权容器、限制主机网络访问等。
-
Pod 安全策略通常与 RBAC 结合使用,确保只有授权用户可以创建具有特定权限的 Pod。
44. Kubernetes 中的 Resource Limits 和 Requests 是什么?
答案:
-
Resource Limits:定义 Pod 可以使用的最大资源量,如 CPU 和内存。
-
Resource Requests:定义 Pod 所需的最低资源量,如 CPU 和内存。
-
Kubernetes 调度器使用 Resource Requests 来决定将 Pod 调度到哪个节点上,而 Resource Limits 用于限制 Pod 的资源使用。
45. Kubernetes 中的 Downward API 是什么?
答案:
-
Downward API:是一种用于将 Pod 的元数据(如 Pod 名称、IP 地址、标签等)注入到容器中的机制。
-
Downward API 允许容器在运行时访问这些元数据,而不需要硬编码或通过 API 查询。
-
Downward API 可以通过环境变量或卷挂载的方式注入到容器中。
46. Kubernetes 中的 Finalizer 是什么?
答案:
-
Finalizer:是一种用于在对象删除之前执行清理操作的机制。
-
Finalizer 可以确保在对象删除之前,相关的资源(如存储卷、网络规则等)已被清理。
-
Finalizer 通常用于实现自定义资源的清理逻辑。
47. Kubernetes 中的 Garbage Collection 是什么?
答案:
-
Garbage Collection:是一种用于自动清理不再需要的 Kubernetes 资源的机制。
-
Garbage Collection 可以清理孤儿 Pod(Orphaned Pod)、孤儿资源(Orphaned Resource)等。
-
Garbage Collection 通常由 Kubernetes 控制器自动执行。
48. Kubernetes 中的 Leader Election 是什么?
答案:
-
Leader Election:是一种用于在分布式系统中选举领导者的机制。
-
Leader Election 确保在多个实例中只有一个实例作为领导者,负责执行关键任务。
-
Leader Election 通常用于实现高可用性和故障恢复。
49. Kubernetes 中的 Pod 中断预算(Pod Disruption Budget)是什么?
答案:
-
Pod 中断预算(Pod Disruption Budget):是一种用于定义应用程序在自愿中断(如节点维护)期间的最小可用 Pod 数量的机制。
-
Pod 中断预算确保在自愿中断期间,应用程序的可用性不会低于定义的最小值。
50. Kubernetes 中的 Pod 拓扑分布约束(Pod Topology Spread Constraints)是什么?
答案:
-
Pod 拓扑分布约束(Pod Topology Spread Constraints):是一种用于定义 Pod 在不同拓扑域(如节点、区域等)中分布的机制。
-
Pod 拓扑分布约束确保 Pod 在不同拓扑域中均匀分布,提高应用程序的可用性和容错性。