【Kubernetes】常见面试题汇总(三十一)
目录
83.简述你知道的 K8s 中几种 Controller 控制器并详述其工作原理。简述 ingress-controller 的工作机制。
特别说明:
题目 1-68 属于【Kubernetes】的常规概念题,即 “ 汇总(一)~(二十二)” 。
题目 69-113 属于【Kubernetes】的生产应用题。
83.简述你知道的 K8s 中几种 Controller 控制器并详述其工作原理。简述 ingress-controller 的工作机制。
(一)deployment(适合无状态的服务部署):
(1)适合部署无状态的应用服务,用来管理 pod 和 replicaset,具有上线部署、副本设定、滚动更新、回滚等功能,还可提供声明式更新,例如只更新一个新的 Image。
(2)编写 yaml 文件,并创建 nginx 服务 pod 资源。
[root@master test] # vim nginx-deployment.yam
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name:nginx1
image: nginx:1.15.4
ports:
- containerPort: 80
(3)查看控制器参数:可以使用 describe 或者 edit 两种方式。
① describe 方式:[root@master test] # kubectl describe deploy nginx-deployment
② edit 方 式 :[root@master test] # kubectl edit deploy nginx-deployment/
(二)Statefulset(适合有状态的服务部署):
(1)特点:
① 适合部署有状态应用;
② 解决 Pod 的独立生命周期,保持 Pod 启动顺序和唯一性;
③ 稳定,唯一的网络标识符,持久存储(例如:etcd 配置文件,节点地址发生变化,将无法使用);
④ 有序,优雅的部署和扩展、删除和终止(例如:mysql 主从关系,先启动主,再启动从);
⑤ 有序,滚动更新。
(2)应用场景:例如数据库
(3)无状态服务的特点:
① deployment 认为所有的 pod 都是一样的;
② 不用考虑顺序的要求;
③ 不用考虑在哪个 node 节点上运行;
④ 可以随意扩容和缩容。
(4)有状态服务的特点:
① 实例之间有差别,每个实例都有自己的独特性,元数据不同,例如 etcd,zookeeper;
② 实例之间不对等的关系,以及依靠外部存储的应用;
(5)常规的 service 服务和无头服务的区别:
① service:一组 Pod 访问策略,提供 cluster-IP 群集之间通讯,还提供负载均衡和服务发现。
② Headless service 无头服务,不需要 cluster-IP,直接绑定具体的 Pod 的 IP,无头服务经常用于 statefulset 的有状态部署。
③ 创建无头服务的 service 资源和 dns 资源:由于有状态服务的 IP 地址是动态的,所以使用无头服务的时候要绑定 dns服务。
(三)Daemonset(一次部署):
(1)一次部署,所有的 node 节点都会部署,例如一些典型的应用场景:
① 运行集群存储 daemon,例如在每个Node 上运行 glusterd、ceph;
② 在每个 Node 上运行日志收集 daemon,例如 fluentd、logstash;
③ 在每个Node 上运行监控 daemon,例如 Prometheus Node Exporter;
④ 在每一个 Node 上运行一个 Pod;
⑤ 新加入的 Node 也同样会自动运行一个 Pod。
(2)应用场景:
监控,分布式存储,日志收集等。
(四)Job(一次性的执行任务):
一次性执行任务,类似 Linux 中的 job。
应用场景:如离线数据处理,视频解码等业务。
(五)Cronjob(周期性的执行任务):
周期性任务,像 Linux 的 Crontab 一样。
应用场景:如通知,备份等。
使用 cronjob 要慎重,用完之后要删掉,不然会占用很多资源。
(六)ingress-controller 的工作机制:
(1)诞生:
- 通常情况下,service 和 pod 的 IP 仅可在集群内部访问。
- k8s 提供了 service 方式:NodePort 来提供对外的服务,外部的服务可以通过访问 Node 节点 ip+NodePort 端口来访问集群内部的资源,外部的请求先到达 service 所选中的节点上,然后负载均衡到每一个节点上。
- NodePort 虽然提供了对外的方式但也有很大弊端:
① 由于 service 的实现方式:user_space 、iptebles、3ipvs、方式这三种方式只支持在 4 层协议通信,不支持 7 层协议,因此 NodePort 不能代理 https服务;
② NodePort 需要暴露 service 所属每个 node 节点上端口,当需求越来越多,端口数量过多,导致维护成本过高,并且集群不好管理。
(2)原理:
- Ingress 也是 Kubernetes APl 的标准资源类型之一,它其实就是一组基于 DNS 名称(host)或 URL 路径把请求转发到指定的 Service 资源的规则。用于将集群外部的请求流量转发到集群内部完成的服务发布。
- 我们需要明白的是,Ingress 资源自身不能进行 “ 流量穿透 ”,仅仅是一组规则的集合,这些集合规则还需要其他功能的辅助,比如监听某套接字,然后根据这些规则的匹配进行路由转发,这些能够为 Ingress 资源监听套接字并将流量转发的组件就是 IngressController。
- Ingress 控制器不同于 Deployment 等 pod 控制器的是,Ingress 控制器不直接运行为 kube-controller-manager 的一部分,它仅仅是 Kubernetes 集群的一个附件,类似于 CoreDNS,需要在集群上单独部署。
- ingress controller 通过监视 api server 获取相关 ingress、service、endpoint、secret、node、configmap 对象,并在程序内部不断循环监视相关 service 是否有新的 endpoints 变化,一旦发生变化则自动更新 nginx.conf 模板配置并产生新的配置文件进行 reload。
“【Kubernetes】常见面试题汇总” 系列文章,可点击链接查看专栏详情:K8s 面试题汇总
相关文章:
【Kubernetes】常见面试题汇总(三十一)
目录 83.简述你知道的 K8s 中几种 Controller 控制器并详述其工作原理。简述 ingress-controller 的工作机制。 特别说明: 题目 1-68 属于【Kubernetes】的常规概念题,即 “ 汇总(一)~(二十二)” 。 …...
在 Windows 上安装和配置 NVIDIA 驱动程序、CUDA、cuDNN 和 TensorRT
在 Windows 上安装和配置 NVIDIA 驱动程序、CUDA、cuDNN 和 TensorRT 1. 安装 NVIDIA 图形驱动程序2. 安装 CUDA Toolkit3. 安装 cuDNN4.安装 TensorRT5. 常见问题1. 安装 NVIDIA 图形驱动程序 首先需要安装兼容 CUDA 的 NVIDIA 驱动程序。 下载最新驱动: 访问 NVIDIA 官网,…...
京准电钟:NTP网络校时服务器助力校园体育场馆
京准电钟:NTP网络校时服务器助力校园体育场馆 京准电钟:NTP网络校时服务器助力校园体育场馆 体育场馆数字时钟系统可为观众及工作人员提供标准时间信息,为计算机及其他系统提供标准时间源,为协调场馆各业务系统与各部门的工作提供…...
9.25度小满一面
1.map的底层 2.unorder_map哈希表有自己实现过吗?哈希冲突 3.poll和epoll和select的优缺点、 4.线程同步机制是用来做什么的? 5.五子棋项目问题-- 算法题: 6.LeetCode.重排链表 给定一个单链表 L 的头节点 head ,单链表 L 表示为: L0…...
mysql批量修改表前缀
现有表前缀xh,批量修改为fax_需要怎么做 SELECTCONCAT(ALTER TABLE ,table_name, RENAME TO fax_,substring(table_name, 3),;) FROMinformation_schema. TABLES WHEREtable_name LIKE xh_%; 运行之后可以但是生成了一批修改表明的命令 此时批量复制执行就可实现批量修改表前…...
算法复杂度
1. 数据结构前⾔ 1.1数据结构 数据结构是计算机存储数据,组织数据的方式,指相互之间存在⼀种或多种特定关系的数 据元素的集合。常见的数据结构有线性表,树,图,哈希等。 1.2 算法 算法是一种计算过程,输…...
vue到出excel
安装 npm install exceljs npm install file-saver<template><button click"dade66">导出 66</button> </template><script> import ExcelJS from exceljs; import { saveAs } from file-saver;export default {data() {return {data…...
【延时队列的实现方式】
文章目录 延时队列JDK自带的延时队列实现Redis实现延迟队列RabbitMQ 延时队列 延时队列 延时队列是一种特殊类型的队列,它允许元素在特定时间间隔后才能被处理。这种队列在处理具有延迟需求的任务时非常有用,例如定时任务、事件驱动系统等 延时队列在项…...
Fyne ( go跨平台GUI )中文文档- 扩展Fyne (七)
本文档注意参考官网(developer.fyne.io/) 编写, 只保留基本用法 go代码展示为Go 1.16 及更高版本, ide为goland2021.2 这是一个系列文章: Fyne ( go跨平台GUI )中文文档-入门(一)-CSDN博客 Fyne ( go跨平台GUI )中文文档-Fyne总览(二)-CSDN博客 Fyne ( go跨平台GUI…...
Qt (19)【Qt 线程安全 | 互斥锁QMutex QMutexLocker | 条件变量 | 信号量】
阅读导航 引言一、互斥锁1. QMutex(1)基本概念(2)使用示例基本需求⭕thread.h⭕thread.cpp⭕widget.h⭕widget.cpp 2. QMutexLocker(1)基本概念(2)使用示例 3. QReadWriteLocker、QR…...
Java语法-类和对象(上)
1. 面向对象的初步认识 1.1 什么是面向对象 概念: Java是一门纯面向对象的语言(Object Oriented Program,简称OOP),在面向对象的世界里,一切皆为对象。 1.2 面向对象VS面向过程 如:洗衣服 面向过程: 注重的是洗衣服的过程,少了一个环节也不…...
Presto如何配置资源队列或资源组
Presto的任务队列配置主要涉及到查询队列和资源组的配置,这些配置通常用于管理Presto集群中的查询执行和资源分配。但是注意这两个东西是共存,互补的关系,并不需要纠结那种配置方式更加出色 一、查询队列配置 Presto的查询队列配置主要通过…...
828华为云征文|使用Flexus X实例集成ES搜索引擎
目录 一、应用场景 1.1 Flexus X实例概述 1.2 ES搜索引擎 二、安装相关服务 2.1 安装Elasticsearch7.17.0 2.2 安装kibana7.17.0 三、开通安全组规则 四、整体感受 4.1 Flexus X实例 4.2 使用感觉 一、应用场景 1.1 Flexus X实例概述 Flexus X实例是华为云推出的一款…...
【设计模式-访问者模式】
定义 访问者模式(Visitor Pattern)是一种行为型设计模式,允许你在不修改已有类的情况下向这些类添加新的功能或行为。它通过将操作的执行逻辑从对象的类中分离出来,使得你可以在保持类的封闭性(符合开闭原则ÿ…...
一元运算符(自增自减)
一、一元运算符 一元运算符,只需要一个操作数 1. 正号 正号不会对数字产生任何影响 2.-负号 负号可以对数字进行负号的取反 对于非Number的值,会将先转换为Number,在进行运算: 可以对一个其他的数据类型使用,来将其转换为n…...
gitlab/极狐-离线包下载地址
如果想要使用Gitlab/极狐进行数据的恢复,只能使用相同版本或者相近版本的安装包,因此有时候需要到它的官网上下载对应版本的安装包,以下是我收集到的对应地址的下载路径: Gitlab Gitlab离线库, https://packages.gitl…...
C++——输入三个整数,按照由小到大的顺序输出。用指针方法处理。
没注释的源代码 #include <iostream> using namespace std; void swap(int *m,int *n); int main() { int a,b,c; int *p1,*p2,*p3; cout<<"请输入三个整数:"<<endl; cin>>a>>b>>c; p1&a;p2&b;p3&c;…...
【Java8 重要特性】Lambda 表达式
文章目录 Lambda函数式接口Lambda 规则规范简化过程改写 Arrays.setAll()改写 Arrays.sort() forEach循环 list 集合循环 list 集合并输出对象信息循环 Map 集合 方法引用和构造器引用方法引用构造器引用 Lambda Lambda是一个匿名函数,我们可以将Lambda表达式理解为…...
word2vec--CBOW与Skip-Gram 两种模型
Word2Vec 是一种流行的用于生成词嵌入(Word Embeddings)的无监督学习模型,它由 Google 的一个团队在 2013 年提出。它的主要目的是将单词映射到一个连续的向量空间,使得语义相似的单词在这个空间中靠得更近。 Word2Vec 有两种主要…...
iOS六大设计原则设计模式
六大设计原则: 一、单一职责原则 一个类或者模块只负责完成一个职责或者功能。 类似于:UIView 和 CALayer 二、开放封闭原则 对扩展开放,对修改封闭。 我们要尽量通过扩展软件实体来解决需求变化,而不是通过修改已有的代码来…...
VCS编译SystemVerilog时,那个‘-P’选项你加对了吗?详解Verdi PLI配置
VCS编译SystemVerilog时,那个‘-P’选项你加对了吗?详解Verdi PLI配置 在芯片验证的日常工作中,VCSVerdi的组合堪称黄金搭档。但当你满怀信心地敲下编译命令,却发现怎么也生成不了关键的fsdb波形文件时,那种挫败感简直…...
AMD Ryzen系统管理单元深度调试:SMUDebugTool技术解析与实战指南
AMD Ryzen系统管理单元深度调试:SMUDebugTool技术解析与实战指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: …...
Qwen3-TTS WebUI使用技巧:长文本自动分段+情感一致性保持方法
Qwen3-TTS WebUI使用技巧:长文本自动分段情感一致性保持方法 Qwen3-TTS-12Hz-1.7B-CustomVoice 是一款强大的语音合成模型,支持10种主要语言和多种方言语音风格,具备出色的上下文理解能力和情感表达能力。但在处理长文本时,如何保…...
Stable Yogi Leather-Dress-Collection效果展示:2.5D视角下皮衣动态褶皱与身体贴合度真实感
Stable Yogi Leather-Dress-Collection效果展示:2.5D视角下皮衣动态褶皱与身体贴合度真实感 想象一下,你是一位动漫角色设计师,需要为角色设计一套充满质感的皮衣。传统的流程需要你手绘线稿、上色、刻画光影和褶皱,整个过程耗时…...
如何用代码快速绘制专业图表?Mermaid Live Editor彻底改变你的可视化工作流
如何用代码快速绘制专业图表?Mermaid Live Editor彻底改变你的可视化工作流 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me…...
7个实用技巧让Continue AI编程助手提升开发效率
7个实用技巧让Continue AI编程助手提升开发效率 【免费下载链接】continue ⏩ Source-controlled AI checks, enforceable in CI. Powered by the open-source Continue CLI 项目地址: https://gitcode.com/GitHub_Trending/co/continue 在当今快节奏的开发环境中&#…...
forkrun:革新数据处理,突破传统并行工具性能瓶颈
【导语:forkrun 作为一款自调优工具,可直接替代 GNU Parallel 和 xargs -P。它在现代 CPU 上能显著提升基于 Shell 的数据准备速度,尤其在 NUMA 架构上表现出色,为数据处理领域带来了新的变革。】数据处理速度的飞跃:5…...
遗传算法(GA)调参实战:以Scikit-learn模型为例,手把手教你自动化超参数搜索
遗传算法调参实战:用进化思维优化Scikit-learn模型超参数 当我们在机器学习项目中反复调整随机森林的max_depth或XGBoost的learning_rate时,是否想过自然界早已提供了更优雅的解决方案?生物进化经过数十亿年锤炼的优化机制,正以遗…...
【已验证】STM32采集声音传感器实现环境声实时监测
1. 引言声音传感器模块这玩意一般在什么环境检测类的课设毕设用的比较多,什么工地环境检测,声控灯、噪音监测、安防报警等场景。本文将详细介绍硬件连接、STM32CubeMX配置以及完整的HAL库驱动代码,最终通过串口打印实时噪声值(ADC…...
一键部署雪女-斗罗大陆-造相Z-Turbo:小白也能轻松生成动漫女神
一键部署雪女-斗罗大陆-造相Z-Turbo:小白也能轻松生成动漫女神 1. 镜像简介与核心功能 1.1 什么是雪女-斗罗大陆-造相Z-Turbo 雪女-斗罗大陆-造相Z-Turbo是一款基于Xinference部署的文生图AI模型服务,专门用于生成斗罗大陆中雪女角色的高质量动漫图像…...
