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

玛卡巴卡的k8s知识点问答题(五)

17. Init 类型容器有什么特点,主要用途?

特点:

  1. 启动顺序:Init 容器在普通容器启动之前运行,必须先完成所有 Init 容器后,Pod 的主容器才会启动。

  2. 顺序执行:如果定义了多个 Init 容器,它们会按照定义的顺序依次执行,前一个完成后下一个才会启动。

  3. 失败重试:如果 Init 容器执行失败,Kubernetes 会不断重试,直到成功或超出 Pod 的重启策略。

  4. 环境隔离:Init 容器的环境和主容器是隔离的,但可以通过共享卷或环境变量传递数据。

  5. 一次性运行:Init 容器完成后,不会再运行,也不会影响 Pod 的生命周期。

主要用途:

  1. 依赖检查:在主容器启动前检查数据库、缓存等服务是否可用。

  2. 环境准备:下载配置文件、初始化数据、创建必要的目录或文件。

  3. 权限配置:修改文件权限,确保主容器可以正常访问。

  4. 镜像裁剪:一些应用需要大型基础镜像,而 Init 容器可以先运行精简脚本,减少主容器的运行压力。


18. Sidecar 类型容器和 Init 容器的区别在哪?

对比项Init 容器Sidecar 容器
运行时机在主容器启动之前运行与主容器同时运行
运行次数运行一次后结束一直运行,直到 Pod 终止
用途初始化工作,如检查依赖、数据准备提供额外功能,如日志收集、监控、代理
生命周期只在启动阶段起作用在 Pod 运行期间持续工作
失败影响失败会阻止 Pod 启动失败可能会影响 Pod 但不会阻止其启动

适用场景:

  • Init 容器:适用于 启动前的准备工作,如下载文件、初始化数据、等待外部依赖服务可用等。

  • Sidecar 容器:适用于 增强主容器功能,如日志代理(Fluentd)、监控采集(Prometheus Exporter)、代理服务(Envoy)等。


19. 什么是静态 Pod?

静态 Pod(Static Pod)是 由 Kubelet 直接管理的 Pod,而不是由 Kubernetes API Server 通过控制器管理的。

特点:

  1. 不受 API Server 管理:静态 Pod 不会被存储到 Etcd,也不会被 kubectl get pod 查询到(但可以在 kubectl get pod --all-namespaces 看到)。

  2. 由 Kubelet 直接管理:Kubelet 通过本地 manifest 文件来创建和管理静态 Pod,而不是依赖 API Server。

  3. 自动重启:如果静态 Pod 进程崩溃,Kubelet 会自动重启它。

  4. 自动创建 Mirror Pod:为了让静态 Pod 可以被 kubectl 查询,Kubelet 会在 API Server 上创建一个 Mirror Pod(镜像 Pod),但这个 Pod 只是一个“影子”,无法直接修改。

  5. 适用于关键组件:通常用于运行关键组件,如 kube-apiserveretcd 等。

使用场景:

  • Kubernetes Master 组件:如 kube-apiserverkube-schedulerkube-controller-manager,在某些部署方式下是以静态 Pod 运行的。

  • 边缘计算:在没有完整 Kubernetes 控制平面的情况下,仍然可以使用静态 Pod 运行应用。

  • 高可用性:某些关键任务可以使用静态 Pod 运行,以防止 API Server 故障影响服务。

如何创建静态 Pod?
在 Kubelet 配置的 staticPodPath 目录(如 /etc/kubernetes/manifests)下创建 YAML 文件,例如:

# /etc/kubernetes/manifests/nginx-static.yaml
apiVersion: v1
kind: Pod
metadata:name: nginx-staticlabels:app: nginx
spec:containers:- name: nginximage: nginxports:- containerPort: 80

Kubelet 发现该文件后,会自动创建并管理该 Pod。


20. 说明 K8s 控制器的作用?

Kubernetes 控制器(Controller)是 Kubernetes 的核心机制之一,它负责自动化管理集群中的资源状态,确保 实际状态(Observed State) 符合 期望状态(Desired State)

作用:

  1. 自动修复:当 Pod、节点或其他资源发生故障时,控制器会自动重新调度或创建新的实例,确保服务正常运行。

  2. 扩缩容:如 Deployment 控制器 可以根据需求自动调整 Pod 数量(水平扩缩容 HPA)。

  3. 负载均衡:如 Service 控制器 维护 Service 的 Endpoint 以确保流量分发到健康的 Pod。

  4. 资源管理:如 ResourceQuota 控制器 限制命名空间的 CPU、内存等资源使用量。

  5. 自动回收:如 Job 控制器 运行完任务后自动清理 Pod,避免资源浪费。

  6. 状态监测:如 Node 控制器 监测节点状态,如果某个节点长时间无响应,会标记为 NotReady 并迁移 Pod。

常见控制器:

控制器作用
ReplicationController确保指定数量的 Pod 始终运行
Deployment负责管理 Pod 的滚动更新、回滚
StatefulSet适用于有状态应用,如数据库,保证 Pod 唯一性
DaemonSet在每个 Node 上运行一个 Pod,适用于日志收集、监控
Job运行一次性任务,成功后终止
CronJob定时运行任务,如定期备份
Node Controller监测节点状态,失联时迁移 Pod
Service Controller维护 Service 的 Endpoint,实现负载均衡

相关文章:

玛卡巴卡的k8s知识点问答题(五)

17. Init 类型容器有什么特点,主要用途? 特点: 启动顺序:Init 容器在普通容器启动之前运行,必须先完成所有 Init 容器后,Pod 的主容器才会启动。 顺序执行:如果定义了多个 Init 容器&#xff…...

3.27学习总结 爬虫+二维数组+Object类常用方法

高精度&#xff1a; 一个很大的整数&#xff0c;以字符串的形式进行接收&#xff0c;并将每一位数存储在数组内&#xff0c;例如100&#xff0c;即存储为[1][0][0]。 p2437蜜蜂路线 每一个的路线数前两个数的路线数相加。 #include <stdio.h> int a[1005][1005]; int …...

kafka零拷贝技术的底层实现

什么是 Sendfile&#xff1f; sendfile 是一种操作系统提供的系统调用&#xff08;system call&#xff09;&#xff0c;用于在两个文件描述符&#xff08;file descriptor&#xff09;之间高效传输数据。它最初由 Linux 内核引入&#xff08;从 2.1 版本开始&#xff09;&…...

MFC中CMap类的用法和原理

1、CMap 的原理 CMap 是一个基于哈希表的映射类&#xff0c;它将唯一键映射到对应的值。其内部实现依赖于哈希算法&#xff0c;通过哈希函数将键转换为哈希值&#xff0c;然后将哈希值映射到哈希表中的某个位置。如果多个键的哈希值相同&#xff08;即哈希冲突&#xff09;&am…...

elementplus的el-tabs路由式

在使用 Element Plus 的 el-tabs 组件&#xff0c;实现路由式的切换&#xff08;即点击标签页来切换不同的路由页面&#xff09;。下面是一个基于 Vue 3 和 Element Plus 实现路由式 el-tabs 的基本步骤和示例。 步骤 1: 安装必要的库 在vue3项目安装 Vue Router 和 Element …...

数据结构初阶:单链表

序言&#xff1a; 本篇博客主要介绍单链表的基本概念&#xff0c;包括如何定义和初始化单链表&#xff0c;以及如何进行数据的插入&#xff0c;删除和销毁等操作。 1.单链表 1.1 概念与结构 概念&#xff1a;链表是一种非顺序的存储结构&#xff0c;数据元素的逻辑顺序是通过…...

北斗导航 | 改进伪距残差矢量的接收机自主完好性监测算法原理,公式,应用,RAIM算法研究综述,matlab代码

改进伪距残差矢量的接收机自主完好性监测算法研究 摘要 接收机自主完好性监测(RAIM)是保障全球卫星导航系统(GNSS)可靠性的核心技术。本文针对传统伪距残差矢量法在微小故障检测和多故障隔离中的不足,提出一种融合加权奇偶空间与动态阈值调整的改进算法。通过理论推导验证…...

RabbitMQ高级特性--TTL和死信队列

目录 1.TTL 1.1设置消息的TTL 1.1.1配置交换机&队列 1.1.2发送消息 1.1.3运行程序观察结果 1.2设置队列的TTL 1.2.1配置队列和交换机的绑定关系 1.2.2发送消息 1.2.3运行程序观察结果 1.3两者区别 2.死信队列 2.1 声名队列和交换机 2.2正常队列绑定死信交换机 …...

Java后端开发: 如何安装搭建Java开发环境《安装JDK》和 检测JDK版本

文章目录 一、JDK的安装1、 打开 Oracle 官方网址2、点击产品 二、检测JDK是否安装成功以及JDK版本的查看1. 打开命令行窗口检测是否安装成功查看 JDK 版本 一、JDK的安装 1、 打开 Oracle 官方网址 Oracle官网地址:https://www.oracle.com/cn/ 2、点击产品 打开下载的JDK文件…...

LabVIEW液压控制系统开发要点

液压控制系统开发需兼顾高实时性、强抗干扰性和安全性&#xff0c;尤其在重工业场景中&#xff0c;毫秒级响应延迟或数据异常都可能导致设备损坏。本文以某钢厂液压升降平台项目为例&#xff0c;从硬件选型、控制算法、安全机制三方面&#xff0c;详解LabVIEW开发中的关键问题与…...

鸿蒙Flutter实战:18-组合而非替换,现有插件快速鸿蒙化

引言 在对插件鸿蒙化时&#xff0c;除了往期文章现有Flutter项目支持鸿蒙II中讲到的使用 dependency_overrides 来配置鸿蒙适配库的两种方式以外&#xff0c;如果三方插件本身使用了联合插件的形式&#xff0c;也可以通过下面这种方式来添加鸿蒙平台的实现&#xff1a; depen…...

Qt之Service开发

一、概述 基于Qt的用于开发系统服务(守护进程)和后台服务,有以下几个优秀的开源 QtService 框架和库。 1. QtService (官方解决方案) GitHub: https://github.com/qtproject/qt-solutions/tree/master/qtservice 特点: 官方提供的服务框架 支持 Windows 服务和 Linux 守护…...

MFC添加免费版大漠3.1233

先创建一个MFC工程&#xff0c; 添加dm.dll 方法一&#xff1a;通过类向导-添加类-类型库中的MFC类-文件&#xff0c;选择dm.dll&#xff0c;如果没有"添加类型库中的MFC类"选项就用方法二添加 方法二&#xff1a;添加-新建项-MFC-Active或TypeLib-实现接口位置选…...

vue 图片放大到全局

背景&#xff1a; 在vue项目中&#xff0c;el-image组件图片组件用于展示图片&#xff0c;组件自带的属性preview-teleported&#xff0c;设置为true可以控制图片放大到全局 实现效果&#xff1a; 核心代码&#xff1a; //图片地址&#xff1a;BASEUrl /file/ item.file //这…...

人工智能入门(1)

人工智能导引 文章目录 人工智能导引artifiicial intelligence由图灵测试出发的六个领域贝叶斯方法分析成为大多数AI系统中不确定推理的现代方法基础 研究方法 机器学习计算机利用已经有的数据样本&#xff0c;得出某种规律模型&#xff0c;并利用模型预测未来的一种方法 回归算…...

Python爬虫:Feapder 的详细使用和案例

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 1. Feapder 概述1.1 Feapder介绍1.2 Feapder 核心特点1.3 Feapder 主要组件1.4 Feapder的安装2. 基础爬虫编写2.1 创建爬虫2.2 运行爬虫3. 数据采集案例3.1 新闻网站采集3.2 电商商品采集3.3 使用 Spider 类创建更强大爬…...

mybatis里in关键字拼接id问题

我们一般会把ids集合用StrUtil.join(‘,’)转成"1,2,3"这种形式 然后放入in中 我们会这么写: select id, nick_name, icon from tb_user where id in (#{ids}) order by FIELD(id, #{ids})结果发现sql执行是这样的: select id, nick_name, icon from tb_user where…...

在rockylinux9.4安装mongodb报错:缺少:libcrypto.so.10文件库

问题点&#xff1a; rockylinux9.4系统环境报错&#xff1a; ./mongod: error while loading shared libraries: libcrypto.so.10: cannot open shared object file: No such file or directory 解决方法&#xff1a; Ps&#xff1a;解压之后&#xff0c;检查mongodb的依赖环境…...

Spring Boot集成阿里云OSS:对象存储实战指南

Spring Boot集成阿里云OSS&#xff1a;对象存储实战指南 1. OSS是什么&#xff1f;为什么选择阿里云OSS&#xff1f; 对象存储&#xff08;OSS&#xff09; 是一种用于存储非结构化数据&#xff08;如图片、视频、日志文件&#xff09;的云服务&#xff0c;核心功能包括&#…...

【力扣hot100题】(019)旋转图像

比较考验脑子转不转得过来&#xff0c;最好先在纸上画一下图整理思路&#xff0c;不要和我一样上来就无脑套循环。 理解了思路还是好做的&#xff0c;每个小循环转一圈&#xff0c;大循环代表转的第几圈。小循环循环n-2i-1次&#xff0c;大循环循环&#xff08;n1&#xff09;…...

06_约束

文章目录 一、是什么二、实体完整性约束2.1、主键约束2.2、主键自增长2.3、唯一约束 三、域完整性约束3.1、非空约束3.2、默认值 四、引用完整性约束 一、是什么 用于限制加入表的数据的类型和规范&#xff0c;约束是添加在列上的&#xff0c;用来约束列的。 分类&#xff1a; …...

Anolis OS 8.4修复CVE-1999-0554漏洞记录

1. 使用TCP Wrappers配置白名单 通过修改/etc/hosts.allow和/etc/hosts.deny文件&#xff0c;仅允许特定IP访问NFS的mountd服务&#xff08;需确保系统支持TCP Wrappers&#xff09;&#xff1a; 编辑/etc/hosts.allow&#xff0c;添加允许的客户端IP&#xff08;如192.168.1…...

Seata AT模式的一些常见问题及其源码解析

Seata 是一款开源的分布式事务解决方案&#xff0c;致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式&#xff0c;为用户打造一站式的分布式解决方案。 Seata AT 基于两阶段提交协议的演变&#xff1a; 一阶段&#xff1a;业…...

华为GaussDB数据库的手动备份与还原操作介绍

数据库的备份以A机上的操作为例。 1、使用linux的root用户登录到GaussDB服务器。 2、用以下命令切换到 GaussDB 管理员用户&#xff0c;其中&#xff0c;omm 为当前数据库的linux账号。 su - omm 3、执行gs_dump命令进行数据库备份&#xff1a; 这里使用gs_dump命令进行备…...

2025年3月29日(matlab -ss -lti)

线性时不变系统&#xff08;LTI系统&#xff09;的定义与核心特性 线性时不变系统&#xff08;Linear Time-Invariant System&#xff09;是信号与系统分析中的基础模型&#xff0c;其核心特性包括线性和时不变性。以下从定义、验证方法和应用场景展开说明&#xff1a; 1. 线性…...

网络原理-TCP/IP

网络原理学习笔记&#xff1a;TCP/IP 核心概念 本文是我在学习网络原理时整理的笔记&#xff0c;主要涵盖传输层、网络层和数据链路层的核心协议和概念&#xff0c;特别是 TCP, UDP, IP, 和以太网。 一、传输层 (Transport Layer) 传输层负责提供端到端&#xff08;进程到进…...

服务器磁盘卷组缓存cache设置介绍

工具1&#xff1a; storcli a. 确认软件包是否安装 [rootlocalhost ~]#rpm -qa | grep storcli storcli-1.21.06-1.noarch 备注&#xff1a;若检索结果为空&#xff0c;需要安装对应的软件安装包。安装命令如下&#xff1a; #rpm -ivh storcli-xx-xx-1.noarch.rpm b. 查看逻辑…...

Unity顶点优化:UV Splits与Smoothing Splits消除技巧

一、顶点分裂问题概述 1. 什么是顶点分裂 顶点分裂(Vertex Splits)是3D渲染中常见的性能问题&#xff0c;当模型需要为同一顶点位置存储不同属性值时&#xff0c;会创建多个顶点副本。主要分为两类&#xff1a; UV Splits&#xff1a;由UV不连续引起 Smoothing Splits&#…...

第五十三章 Spring之假如让你来写Boot——环境篇

Spring源码阅读目录 第一部分——IOC篇 第一章 Spring之最熟悉的陌生人——IOC 第二章 Spring之假如让你来写IOC容器——加载资源篇 第三章 Spring之假如让你来写IOC容器——解析配置文件篇 第四章 Spring之假如让你来写IOC容器——XML配置文件篇 第五章 Spring之假如让你来写…...

Router [Continuation Settings]

楼上网络CMCC-Wmew&#xff0c;楼下接收不到&#xff0c;可能因为喜好弱&#xff0c;再弄一台路由器中转一下 Router [Continuation Settings] 路由器中续设置 到这里这台K3的路由器设置完成了&#xff0c;作为转发&#xff0c;中续&#xff0c;她还需要设置上游路由器&#…...