当前位置: 首页 > news >正文

Kubernetes 常见面试题(六)

51. 简述 Kubernetes 网络策略?

答:为实现细粒度的容器间网络访问隔离策略,Kubernetes 引入 Network Policy。Network Policy 的主要功能是对 Pod 间的网络通信进行限制和准入控制,设置允许访问或禁止访问的客户端 Pod 列表。Network Policy 定义网络策略,配合策略控制器(Policy Controller)进行策略的实现。

52. 简述 Kubernetes 网络策略原理?

答:Network Policy 的工作原理主要为:policy controller 需要实现一个 API Listener,监听用户设置的 Network Policy 定义,并将网络访问规则通过各 Node 的 Agent 进行实际设置(Agent 则需要通过 CNI 网络插件实现)。

53. 简述 Kubernetes 中 flannel 的作用?

答:Flannel 可以用于 Kubernetes 底层网络的实现,主要作用有:

  • 它能协助 Kubernetes,给每一个 Node 上的 Docker 容器都分配互相不冲突的IP 地址。
  • 它能在这些 IP 地址之间建立一个覆盖网络(Overlay Network),通过这个覆盖网络,将数据包原封不动地传递到目标容器内。

54. 简述 Kubernetes Calico 网络组件实现原理?

答:
Calico 是一个基于 BGP 的纯三层的网络方案,与 OpenStack、Kubernetes、AWS、GCE 等云平台都能够良好地集成。

Calico 在每个计算节点都利用 Linux Kernel 实现了一个高效的 vRouter 来负责数据转发。每个 vRouter 都通过 BGP 协议把在本节点上运行的容器的路由信息向整个Calico 网络广播,并自动设置到达其他节点的路由转发规则。

Calico 保证所有容器之间的数据流量都是通过 IP 路由的方式完成互联互通的。Calico节点组网时可以直接利用数据中心的网络结构(L2 或者 L3),不需要额外的 NAT、隧道或者 Overlay Network,没有额外的封包解包,能够节约 CPU 运算,提高网络
效率。

55. 简述 Kubernetes 共享存储的作用?

答:Kubernetes 对于有状态的容器应用或者对数据需要持久化的应用,因此需要更加可靠的存储来保存应用产生的重要数据,以便容器应用在重建之后仍然可以使用之前的数据。因此需要使用共享存储。

56. 简述 Kubernetes 数据持久化的方式有哪些?

答:Kubernetes 通过数据持久化来持久化保存重要数据,常见的方式有:

  • EmptyDir(空目录):没有指定要挂载宿主机上的某个目录,直接由 Pod 内保
    部映射到宿主机上。类似于 docker 中的 manager volume。
  • 场景:
    • 只需要临时将数据保存在磁盘上,比如在合并/排序算法中;
    • 作为两个容器的共享存储。
  • 特性:
    • 同个 pod 里面的不同容器,共享同一个持久化目录,当 pod 节点删除时,volume 的数据也会被删除。
    • emptyDir 的数据持久化的生命周期和使用的 pod 一致,一般是作为临时存储使用。
  • Hostpath:将宿主机上已存在的目录或文件挂载到容器内部。类似于 docker 中的 bind mount 挂载方式。
    • 特性:增加了 pod 与节点之间的耦合。

PersistentVolume(简称 PV):如基于 NFS 服务的 PV,也可以基于 GFS 的 PV。它的作用是统一数据持久化目录,方便管理。

57. 简述 Kubernetes PV 和 PVC?

答:
PV 是对底层网络共享存储的抽象,将共享存储定义为一种“资源”。
PVC 则是用户对存储资源的一个“申请”。

58. 简述 Kubernetes PV 生命周期内的阶段?

答:某个 PV 在生命周期中可能处于以下 4 个阶段(Phaes)之一。

  • Available:可用状态,还未与某个 PVC 绑定。
  • Bound:已与某个 PVC 绑定。
  • Released:绑定的 PVC 已经删除,资源已释放,但没有被集群回收。
  • Failed:自动资源回收失败。

59. 简述 Kubernetes 所支持的存储供应模式?

答:Kubernetes 支持两种资源的存储供应模式:静态模式(Static)和动态模式(Dynamic)。

  • 静态模式:集群管理员手工创建许多 PV,在定义 PV 时需要将后端存储的特性进行设置。
  • 动态模式:集群管理员无须手工创建 PV,而是通过 StorageClass 的设置对后端存储进行描述,标记为某种类型。此时要求 PVC 对存储的类型进行声明,系统将自动完成 PV 的创建及与 PVC 的绑定。

60. 简述 Kubernetes CSI 模型?

答:Kubernetes CSI 是 Kubernetes 推出与容器对接的存储接口标准,存储提供方只需要基于标准接口进行存储插件的实现,就能使用 Kubernetes 的原生存储机制为容器提供存储服务。CSI 使得存储提供方的代码能和 Kubernetes 代码彻底解耦,部署也
与 Kubernetes 核心组件分离,显然,存储插件的开发由提供方自行维护,就能为Kubernetes 用户提供更多的存储功能,也更加安全可靠。

CSI 包括 CSI Controller 和 CSI Node:

  • CSI Controller 的主要功能是提供存储服务视角对存储资源和存储卷进行管理和操作。
  • CSI Node 的主要功能是对主机(Node)上的 Volume 进行管理和操作。

相关文章:

  • Linux安装禅道最新版
  • 【Bluetooth|蓝牙开发】十一、一文秒懂 | 超详细的Bluez交叉编译
  • TC8:SOMEIPSRV_FORMAT_01-10
  • 软考:信息安全工程师3
  • 接口(续)和Object类
  • 构造接口,免费查询快递物流
  • 被裁后一个offer都没有,测试人的问题在哪里?
  • 图像运算和图像增强一
  • 【C++】unordered map/set
  • 定时任务框架
  • C型9.4MM针脚距电磁阀插头
  • 【算法 | 实验8】分配最小页数(数组划分和最大值最小化问题)
  • rsync远程同步+inotify监控
  • 学会这个Python技能,就可以跟excel说再见了
  • 【漏洞复现-showdoc-文件上传】​vulfocus/showdoc-cnvd_2020_26585
  • @jsonView过滤属性
  • FastReport在线报表设计器工作原理
  • happypack两次报错的问题
  • Koa2 之文件上传下载
  • python3 使用 asyncio 代替线程
  • python大佬养成计划----difflib模块
  • python学习笔记-类对象的信息
  • React-Native - 收藏集 - 掘金
  • Spring Cloud Alibaba迁移指南(一):一行代码从 Hystrix 迁移到 Sentinel
  • Spring框架之我见(三)——IOC、AOP
  • Swoft 源码剖析 - 代码自动更新机制
  • vue-cli在webpack的配置文件探究
  • Wamp集成环境 添加PHP的新版本
  • WePY 在小程序性能调优上做出的探究
  • 动态魔术使用DBMS_SQL
  • 对象引论
  • 给github项目添加CI badge
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 区块链共识机制优缺点对比都是什么
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 说说动画卡顿的解决方案
  • 写代码的正确姿势
  • ​​​​​​​​​​​​​​汽车网络信息安全分析方法论
  • #Linux(make工具和makefile文件以及makefile语法)
  • (003)SlickEdit Unity的补全
  • (13):Silverlight 2 数据与通信之WebRequest
  • (4)Elastix图像配准:3D图像
  • (八)c52学习之旅-中断实验
  • (附源码)node.js知识分享网站 毕业设计 202038
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(七)
  • (转)视频码率,帧率和分辨率的联系与区别
  • (转)详解PHP处理密码的几种方式
  • .FileZilla的使用和主动模式被动模式介绍
  • .gitattributes 文件
  • .Mobi域名介绍
  • .net 4.0 A potentially dangerous Request.Form value was detected from the client 的解决方案
  • .NET 4.0中的泛型协变和反变
  • .net 流——流的类型体系简单介绍
  • .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction)
  • .NET 依赖注入和配置系统