k8s面试题
目录
[toc]
常规题
概述
简述 Kubernetes 的优势、适应场景及其特点?
答:
Kubernetes 作为一个完备的分布式系统支撑平台,其主要优势:
- 容器编排
- 轻量级
- 开源
- 弹性伸缩
- 负载均衡
Kubernetes 常见场景:
- 快速部署应用
- 快速扩展应用
- 无缝对接新的应用功能
- 节省资源,优化硬件资源的使用
Kubernetes 相关特点:
- 可移植: 支持公有云、私有云、混合云、多重云(multi-cloud)。
- 可扩展: 模块化,、插件化、可挂载、可组合。
- 自动化: 自动部署、自动重启、自动复制、自动伸缩/扩展。
简述 Kubernetes 的缺点或当前的不足之处
Kubernetes 当前存在的缺点(不足)如下:
- 安装过程和配置相对困难复杂。
- 管理服务相对繁琐。
- 运行和编译需要很多时间。
- 它比其他替代品更昂贵。
- 对于简单的应用程序来说,可能不需要涉及 Kubernetes 即可满足。
k8s是什么?请说出你的了解
答:Kubernetes是一个针对容器应用,进行自动部署,弹性伸缩和管理的开源系统。主要功能是生产环境中的容器编排。
K8S是Google公司推出的,它来源于由Google公司内部使用了15年的Borg系统,集结了Borg的精华。
简述什么是 Kubernetes
答:
Kubernetes 是一个全新的基于容器技术的分布式系统支撑平台。
是 Google 开源的容器集群管理 系统(谷歌内部:Borg)。
在 Docker 技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。并且具有完备的集群管理能力,多层次的安全防护和准入机制、多租户应用支撑能力、透明的服务注册和发现机制、內建智能负载均衡器、强大的故障发现和自我修复能力、服务滚动升级和在线扩容能力、可扩展的资源自动调度机制以及多粒度的资源配额管理能力。
简述 Kubernetes 和 Docker 的关系
答:
Docker 提供容器的生命周期管理,Docker 镜像构建运行时容器。它的主要优点是将将软件/应用程序运行所需的设置和依赖项打包到一个容器中,从而实现了可移植性等优点。 Kubernetes 用于关联和编排在多个主机上运行的容器。
架构
简述 Kubernetes 相关基础概念
答:
-
master:k8s 集群的管理节点,负责管理集群,提供集群的资源数据访问入口。拥有 Etcd 存储服务(可选),运行 Api Server 进程,Controller Manager 服务进程及 Scheduler 服务进程。
-
node(worker):Node(worker)是 Kubernetes 集群架构中运行 Pod 的服务节点,是 Kubernetes 集群操作的单元,用来承载被分配 Pod 的运行,是 Pod运行的宿主机。运行 docker eninge 服务,守护进程 kunelet 及负载均衡器kube-proxy。
-
pod:运行于 Node 节点上,若干相关容器的组合。Pod 内包含的容器运行在同一宿主机上,使用相同的网络命名空间、IP 地址和端口,能够通过 localhost 进行通信。Pod 是 Kurbernetes 进行创建、调度和管理的最小单位,它提供了比容器更高层次的抽象,使得部署和管理更加灵活。一个 Pod 可以包含一个容器或者多个相关容器。
-
label:Kubernetes 中的 Label 实质是一系列的 Key/Value 键值对,其中 key 与value 可自定义。Label 可以附加到各种资源对象上,如 Node、Pod、Service、RC 等。一个资源对象可以定义任意数量的 Label,同一个 Label 也可以被添加到任意数量的资源对象上去。Kubernetes 通过 **Label Selector(标签选择器)**查询和筛选资源对象。
-
Replication Controller:Replication Controller 用来管理 Pod 的副本,保证集群中存在指定数量的 Pod 副本。集群中副本的数量大于指定数量,则会停止指定数量之外的多余容器数量。反之,则会启动少于指定数量个数的容器,保证数量不变。Replication Controller 是实现弹性伸缩、动态扩容和滚动升级的核心。
-
Deployment:Deployment 在内部使用了 RS 来实现目的,Deployment 相当于 RC 的一次升级,其最大的特色为可以随时获知当前 Pod 的部署进度。
-
HPA(Horizontal Pod Autoscaler)