深信服GO面试题及参考答案(下)
Kubernetes 与容器
Kubernetes(简称 K8s)是容器编排平台,而容器是轻量级的虚拟化技术,两者紧密关联但定位不同,容器是 K8s 管理的核心对象,K8s 为容器提供了完整的生命周期管理、扩展和运维能力。
容器技术(如 Docker)通过 Linux 命名空间(Namespace)、控制组(CGroup)和联合文件系统(UnionFS)实现:命名空间隔离进程、网络、挂载点等资源,使容器拥有独立的运行环境;控制组限制容器的 CPU、内存等资源使用;联合文件系统(如 overlay2)实现镜像的分层存储,减少磁盘占用。容器解决了“开发环境与生产环境不一致”的问题,通过镜像(包含代码、依赖、配置的可执行包)保证应用在任何支持容器的环境中一致运行。
但单独使用容器存在局限性:无法自动恢复故障容器、难以实现多容器协同(如前端与后端容器需网络互通)、手动管理大量容器效率低。K8s 在此基础上提供了更高层次的抽象和管理能力:
- Pod:K8s 的最小部署单元,可包含一个或多个紧密关联的容器,共享网络命名空间和存储卷,实现容器间的本地通信和数据共享。
- 控制器:如 Deployment 管理 Pod 的创建、更新和扩缩容,确保期望数量的 Pod 始终运行;StatefulSet 用于有状态应