k8s面试题
什么是Kubernetes(k8s)?它的主要功能是什么?
Kubernetes(简称 k8s)是一个开源的容器编排平台,用于自动化应用程序的部署、扩展和管理。它的主要功能包括:
应用程序部署和版本控制
自动伸缩
容器负载均衡
自我修复
存储编排
1
2
3
4
5
6
7
2
3
4
5
6
7
什么是Pod?Pod之间的通信是如何实现的?
Pod 是 Kubernetes 的基本部署单位,包含一个或多个容器。
Pod 内的容器共享相同的网络命名空间,可以通过 localhost 相互通信。
Pod 之间可以通过 Service 或直接使用 Pod IP 进行通信
1
2
3
2
3
什么是Service?Service有哪些类型?它们的区别是什么?
Service 是 Kubernetes 提供的一种抽象,用于将一组具有相同功能的 Pod 暴露给其他 Pod 或外部客户端。Service 有以下类型:
ClusterIP:提供一个集群内部的虚拟 IP 地址,供其他 Pod 访问
NodePort:在每个节点上暴露一个端口,供外部访问
LoadBalancer:为 Service 提供一个外部负载均衡器,供外部访问
ExternalName:将 Service 映射到一个外部的名称,如 DNS 名称
1
2
3
4
5
6
2
3
4
5
6
Kubernetes中的控制器有哪些?它们各自的作用是什么?
Deployment:用于管理无状态应用程序的 Pod
StatefulSet:用于管理有状态应用程序的 Pod
DaemonSet:在每个节点上运行一个 Pod 实例
ReplicaSet:确保指定数量的 Pod 副本始终运行
Job:执行一次性任务
CronJob:执行定时任务
1
2
3
4
5
6
2
3
4
5
6
Kubernetes中的存储卷(Volume)有哪些类型?它们的区别是什么?
emptyDir:临时存储,与 Pod 生命周期相同
hostPath:挂载节点上的文件或目录到 Pod
nfs:将 NFS 共享挂载到 Pod
persistentVolumeClaim:使用 PVC 管理持久化存储
其他存储插件(如 AWS EBS、GCE PD 等)
1
2
3
4
5
2
3
4
5
网络插件(CNI)是什么?它的作用是什么?
容器网络接口(CNI)是一种插件化的网络解决方案,负责配置 Pod 之间的网络通信
1
Kubernetes中的调度器是什么?它的作用是什么?
Kubernetes 调度器负责根据 Pod 的资源需求、优先级等因素将 Pod 分配到合适的节点上运行。
1
Kubernetes中的监控和日志收集是如何实现的?
Kubernetes 中的监控和日志收集通常通过第三方工具实现,如 Prometheus、Grafana(监控)和 Fluentd、Elasticsearch(日志收集)
1
Kubernetes中的安全机制有哪些?如何保障Pod的安全性?
身份认证和授权(RBAC)
网络策略
节点安全
容器安全(如安全上下文、限制容器权限等)
1
2
3
4
2
3
4
Kubernetes中的自动伸缩是如何实现的?有哪些策略可以使用?
水平 Pod 自动伸缩(HPA):根据 CPU 利用率或自定义指标自动调整 Pod 副本数量。
- 垂直 Pod 自动伸缩(VPA):根据应用程序的资源需求自动调整 Pod 的 CPU 和内存资源限制。
- 集群自动伸缩(CA):根据集群中的资源需求自动调整节点数量。
1
2
3
2
3
上次更新: 2023/05/13, 13:42:13