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

【Kubernetes】常见面试题汇总(四十)

目录

93. Kubelet 与 kubeproxy 作用。Kubeproxy 的三种代理模式和各自的原理以及它们的区别。

特别说明:

题目   1-68   属于【Kubernetes】的常规概念题,即 “ 汇总(一)~(二十二)” 。

题目 69-113 属于【Kubernetes】的生产应用题。


93. Kubelet 与 kubeproxy 作用。Kubeproxy 的三种代理模式和各自的原理以及它们的区别。

(一)Kubelet 与 kubeproxy 作用:

(1)kubelet:

kubelet 进程用于处理 master 下发的任务,管理 pod 中的容器,注册自身所在的节点。

(2)kube-proxy 运行机制解析:

kube-proxy 本质上类似一个反向代理。我们可以把每个节点上运行的 kube-proxy 看作 service 的透明代理兼 LB。

(3)Service:

Service 是 k8s 中资源的一种,也是 k8s 能够实现减少运维工作量,甚至免运维的关键点,我们公司的运维都要把服务搭在我们集群里,接触过的人应该都能体会到其方便之处。

Service 能将 pod 的变化屏蔽在集群内部,同时提供负载均衡的能力,自动将请求流量分布到后端的 pod,这一功能的实现靠的就是 kube-proxy 的流量代理,一共有三种模式:userspace、iptables 以及 ipvs。

(二)Kubeproxy 的三种代理模式:

(1)userspace:

为每个 service 在 node 上打开一个随机端口(代理端口)

建立 iptables 规则,将 clusterip 的请求重定向到代理端口。

到达代理端口(用户空间 userspace )的请求再由 kubeproxy 转发到后端 pod

这里为什么需要建 iptables 规则:

因为 kube-proxy 监听的端口在用户空间,所以需要一层 iptables 把访问服务的连接重定向给 kube-proxy 服务,这里就存在内核态到用户态的切换,代价很大,因此就有了iptables。

(2)iptables:

kube-proxy 不再负责转发,数据包的走向完全由iptables规则决定,这样的过程不存在内核态到用户态的切换,效率明显会高很多。

但是随着 service 的增加,iptables 规则会不断增加,导致内核十分繁忙(等于在读一张很大的没建索引的表)。

(3)ipvs:

用 ipset 存储 iptables 规则,这样规则的数量就能够得到有效控制,而在查找时就类似 hash 表的查找。


“【Kubernetes】常见面试题汇总” 系列文章,可点击链接查看专栏详情:K8s 面试题汇总

相关文章:

  • 大联大友尚集团推出基于炬芯科技产品的蓝牙音箱方案
  • Linux-基础篇文件权限和组的管理-练习实践(附答案)
  • 算法打卡:第十一章 图论part11
  • RabbitMQ的高级特性-事务
  • 深度学习之贝叶斯分类器
  • NASA数据集:ATLAS/ICESat-2 L3B 每日和每月网格化海冰自由面高度,第 4 版
  • 多个excel表数据比对操作
  • 叉车防撞系统方案,引领安全作业新时代
  • docker-compose 快速部署clickhouse集群
  • 清华大学、腾讯联合推全开源多模态架构Oryx 支持超长视频输入
  • 系统实施方案(word2024原件参考模板)
  • 【网络安全】绕过 Etplorer 管理面板实现RCE
  • 【Spring Boot 入门三】Spring Boot与数据库集成 - 构建数据驱动的应用
  • Springboot 练习
  • synchronized关键字的作用、使用场景及锁升级过程。ReentrantLock与synchronized的区别及适用场景。
  • [PHP内核探索]PHP中的哈希表
  • iOS 系统授权开发
  • JavaWeb(学习笔记二)
  • LeetCode18.四数之和 JavaScript
  • Linux Process Manage
  • Next.js之基础概念(二)
  • spring boot 整合mybatis 无法输出sql的问题
  • SQLServer之创建显式事务
  • 入口文件开始,分析Vue源码实现
  • 入门级的git使用指北
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • 一道面试题引发的“血案”
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • 正则表达式小结
  • 走向全栈之MongoDB的使用
  • AI算硅基生命吗,为什么?
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • #ubuntu# #git# repository git config --global --add safe.directory
  • #WEB前端(HTML属性)
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • (0)Nginx 功能特性
  • (02)Unity使用在线AI大模型(调用Python)
  • (02)vite环境变量配置
  • (175)FPGA门控时钟技术
  • (C++)八皇后问题
  • (C++17) optional的使用
  • (python)数据结构---字典
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (二)学习JVM —— 垃圾回收机制
  • (十) 初识 Docker file
  • (四)js前端开发中设计模式之工厂方法模式
  • (贪心) LeetCode 45. 跳跃游戏 II
  • (一)基于IDEA的JAVA基础10
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • .bat批处理(一):@echo off
  • .NET 8 跨平台高性能边缘采集网关
  • .Net组件程序设计之线程、并发管理(一)