【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)有状态服务的特点:

① 实例之间有差别,每个实例都有自己的独特性,元数据不同,例如 etcdzookeeper

② 实例之间不对等的关系,以及依靠外部存储的应用;

(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 面试题汇总

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1542690.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

果断收藏!2024年最好用的七款高效论文写作神器

在2024年,随着人工智能技术的飞速发展,AI论文写作工具成为学术研究和写作领域的一大助力。这些工具不仅能够显著提高写作效率,还能帮助学者和学生节省时间,减少熬夜,同时保证论文质量。以下是七款高效且值得收藏的AI论…

Python_控制循环语句

if语句单分支结构的语法形式如下&#xff1a; 【操作】输入一个数字&#xff0c;小于10&#xff0c;则打印这个数字(if_test01.py)&#xff1a; num input("输入一个数字&#xff1a;") if int(num)<10: print("小于10的数&#xff1a;"num)条件表达式…

2024年华为杯数学建模E题-高速公路应急车道启用建模-基于YOLO8的数据处理代码参考(无偿分享)

利用YOLO模型进行高速公路交通流量分析 识别效果&#xff1a; 免责声明 本文所提供的信息和内容仅供参考。尽管我尽力确保所提供信息的准确性和可靠性&#xff0c;但我们不对其完整性、准确性或及时性作出任何保证。使用本文信息所造成的任何直接或间接损失&#xff0c;本人…

资源创建方式-Job

Job: 容器按照持续运行的时间可分为两类&#xff0c;服务类容器&#xff0c;和工作类容器 服务类容器通常持续提供服务&#xff0c;需要一直运行&#xff0c;比如HTTP,Server&#xff0c;Daemon等&#xff0c; 工作类容器则是一次性任务&#xff0c;比如批处理程序&#xff0…

stm32单片机个人学习笔记7(TIM定时中断)

前言 本篇文章属于stm32单片机&#xff08;以下简称单片机&#xff09;的学习笔记&#xff0c;来源于B站教学视频。下面是这位up主的视频链接。本文为个人学习笔记&#xff0c;只能做参考&#xff0c;细节方面建议观看视频&#xff0c;肯定受益匪浅。 STM32入门教程-2023版 细…

数值计算 --- 平方根倒数快速算法(中)

平方根倒数快速算法 --- 向Greg Walsh致敬&#xff01; 1&#xff0c;平方根倒数快速算法是如何选择初值的?WTF中的神秘数字究竟是怎么来的&#xff1f; 花开两朵&#xff0c;各表一枝。在前面的介绍中&#xff0c;我们已经知道了这段代码的作者在函数的最后使用了NR-iteratio…

Python办公自动化教程(003):PDF的加密

【1】代码 from PyPDF2 import PdfReader, PdfWriter# 读取PDF文件 pdf_reader PdfReader(./file/Python教程_1.pdf) pdf_writer PdfWriter()# 对第1页进行加密 page pdf_reader.pages[0]pdf_writer.add_page(page) # 设置密码 pdf_writer.encrypt(3535)with open(./file/P…

mybatis 配置文件完成增删改查(四) :多条件 动态sql查询

文章目录 就是你在接收数据时&#xff0c;有的查询条件不写&#xff0c;也能从查到相应的stauts也可能为空恒等式标签 代替where关键字 就是你在接收数据时&#xff0c;有的查询条件不写&#xff0c;也能从查到相应的 注意是写字段名 还是 属性名 companyName不写也能查出满足…

亚马逊IP关联揭秘:发生ip关联如何处理

在亚马逊这一全球领先的电商平台上&#xff0c;IP关联是一个不可忽视的问题&#xff0c;尤其是对于多账号运营的卖家而言。本文将深入解析亚马逊IP关联的含义、影响以及应对策略&#xff0c;帮助卖家更好地理解和应对这一问题。 什么是亚马逊IP关联&#xff1f; 亚马逊IP关联…

9.22算法题数组篇

数组的遍历 485.最大连续1的个数 题解 class Solution {public int findMaxConsecutiveOnes(int[] nums) {int maxcount0,count0;for (int i 0;i<nums.length;i){if(nums[i]1){count;}else{maxcountMath.max(maxcount,count);count0;}}maxcountMath.max(maxcount,count);r…

2024AI做PPT软件如何重塑演示文稿的创作

现在AI技术的发展已经可以帮我们写作、绘画&#xff0c;最近我发现了不少ai做ppt的工具&#xff01;不体验不知道&#xff0c;原来合理使用AI工具可以有效的帮我们进行一些办公文件的编写&#xff0c;提高了不少工作效率。如果你也有这方面的需求就接着往下看吧。 1.笔灵AIPPT…

linux-----进程控制

提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、fork()函数 返回值&#xff1a;子进程返回0&#xff0c;父进程返回子进程的id,出错就返回-1. fork创建子进程&#xff0c;如果父子一方发生写入时&#xff0c;就会发生写实拷贝&#xff0c;操作系统就…

【AD24报错】PCB调整线宽后提示 Width Constraint: Track ### on Top Layer的解决方案

【AD24报错】PCB调整线宽提示Width Constraint: Track&#xff08;##mil, ##mil&#xff09;&#xff08;##mil, ##mil&#xff09;on Top Layer的解决方案 一、Width Constraint问题复现二、有关于Width Constraint的解决方案三、可能导致 Width Constraint 报错的其他因素&am…

C++初阶:STL详解(六)——list的介绍和使用

✨✨小新课堂开课了&#xff0c;欢迎欢迎~✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;C&#xff1a;由浅入深篇 小新的主页&#xff1a;编程版小新-CSDN博客 前言&#xff1a; 前面我们已经了解了strin…

c++----io流

提示&#xff1a;以下 是本篇文章正文内容&#xff0c;下面案例可供参考 1.标准io流 (1)数据的循环输入 对于内置类型&#xff1a;cin和cout直接使用&#xff0c;c已经重载了 (2)对于自定义类型&#xff1a; 需要我们自己对类型进行重载 2.文件io流 ifstream ifile(只输入…

机器学习中结构风险最小化的正则化项用途及原理详解

一、概述 数学和工程领域&#xff0c;正则(Regularize)意味着使某物标准化或规范化&#xff0c;在机器学习领域指的是使模型的行为更加规范化&#xff0c;以避免极端或过于复杂的模型。 正则化项&#xff08;Regularization Term&#xff09;是机器学习模型中用于控制模型复杂…

力扣72-编辑距离(Java详细题解)

题目链接&#xff1a;力扣72-编辑距离 前情提要&#xff1a; 因为本人最近都来刷dp类的题目所以该题就默认用dp方法来做。 dp五部曲。 1.确定dp数组和i下标的含义。 2.确定递推公式。 3.dp初始化。 4.确定dp的遍历顺序。 5.如果没有ac打印dp数组 利于debug。 每一个dp…

鸿蒙OpenHarmony【轻量系统内核扩展组件(动态加载)】子系统开发

基本概念 在硬件资源有限的小设备中&#xff0c;需要通过算法的动态部署能力来解决无法同时部署多种算法的问题。以开发者易用为主要考虑因素&#xff0c;同时考虑到多平台的通用性&#xff0c;LiteOS-M选择业界标准的ELF加载方案&#xff0c;方便拓展算法生态。LiteOS-M提供类…

微信小程序认证流程

官方描述&#xff1a; 微信接口服务&#xff1a;即微信服务器。 具体的流程如下&#xff1a; 1.前端调用wx.login()获取登录凭证code 2.前端请求后端进行认证&#xff0c;发送code 3.后端请求微信获取openid 4.后端生成认证成功凭证返回给前端。 说明 调用 wx.login() 获…

【二等奖论文】2024年华为杯研赛C题54页成品论文(后续会更新)

您的点赞收藏是我继续更新的最大动力&#xff01; 一定要点击如下的卡片&#xff0c;那是获取论文的入口&#xff01; 点击链接获取【2024华为杯研赛资料汇总】&#xff1a;https://qm.qq.com/q/Nr0POlQGc2https://qm.qq.com/q/Nr0POlQGc2 摘 要&#xff1a; 随着国民经济发…