k8s debug 浅谈
一 k8s debug 浅谈
说明: 本文只是基于对'kubectl debug'浅显认识总结的知识点,后续'实际使用'再补充案例
Kubernetes 官方出品调试工具上手指南(无需安装,开箱即用)
debug-application
简化 Pod 故障诊断: kubectl-debug 介绍
1.18 版本之前需要自己安装kubectl debug 下载位置 debug_0.1.1_linux_amd64.tar.gz
① 低版本安装kubectl-debug工具
# linux x86_64export PLUGIN_VERSION=0.1.1mv debug_${PLUGIN_VERSION}_linux_amd64.tar.gz kubectl-debug.tar.gztar -zxvf kubectl-debug.tar.gz kubectl-debugmv kubectl-debug /usr/local/bin/机制: 关于为什么安装kubectl-debug,但是却可以使用'kubectl debug'命令参考'plugin的'机制
+++++++++++++ "推荐下面的方式,而不是plugin插件的方式" +++++++++++++1、在 'v1.23 及以上'版本中,该功能'默认'开启2、针对 '1.23 以下'的 K8S 版本,需要通过'以下'方式,'手动'开启1) '控制面' 开启 EphemeralContainers featureGate2) 进入 'master' 节点,编辑 /etc/kubernetes/manifests/ 下的 kube-apiserver.yaml、kube-controller-manager.yaml、kube-scheduler.yaml备注: 实际'操作'只修改kube-apiserver.yaml即可3) 在 command 部分添加 - --feature-gates=EphemeralContainers=true4) kubelet 服务开启该功能5) 在节点上'编辑' /var/lib/kubelet/kubeadm-flags.env添加 --feature-gates=EphemeralContainers=true或者设置KUBELET_EXTRA_ARGS="--feature-gates=EphemeralContainers=true"#6) 重启 kubelet:systemctl restart kubelet细节: v1.18.4 '版本中' 必须使用 kubectl 'alpha' debug
② 临时容器
1、 EphemeralContainer '临时容器'
Debugging using a copy of the Pod
③ debug的背景
1、kubectl是 k8s 管理员的日常工具,当'调试'或'排查 pod'问题时2、一般情况使用 'logs'、describe、exec '子命令'便可以找到'问题'原因java 排错 --> 镜像如果没有'提供相关'的工具,怎么排错呢? --> 'gcc 日志'分析、jvm性能分析补充: 容器所在节点'执行nsenter',查看pod或容器 ps: 不一定有'worker节点的登陆权限'思考: 哪些场景'不满足'驱使我们使用'kubectl debug'
--feature-gates="EphemeralContainers=true"
④ kubectl debug原理
kubectl debug 调试运行中的pod
1、内置的 kubectl debug 命令其实很'简单'2、通过 '--target' 参数指定'Pod中的哪个容器',给'正在运行中的 Pod' 增加一个'临时'容器备注: 默认是'主'容器,'第一个',也即'业务容器'补充:--image参数就是用于指定使用'哪个镜像来debug',这个镜像包含我们'常使用的工具'即可3、'共享进程命名空间',容器文件系统通过 '/proc/$pid/root' 链接对 pod 中的'其他容器'可见++++++++++++ "分割线" ++++++++++++运行 debug 命令, 把'日志级别'设置为 10 ,查看创建 debug 容器的'过程':kubectl run ephemeral-demo --image=pause:3.5 --restart=Neverkubectl -v=10 debug -it ephemeral --image=busybox:1.33.1 --target=temp_demo GET 获取 pod -> 'PATCH' 增加临时容器 -> 'GET' 获取临时容器 -> 'POST' 进入临时容器
kubeadm 安装的集群如何启动 kubectl debug 调试容器
1、当'debug'连接到Pod后,使用 'chroot /host' 突破 chroot,并完全'进入'主机2、可以获取到'节点完全的权限',查看到节点所有的文件,甚至'重启节点'
二 如何启动临时容器
① 在已经运行k8s集群中开启临时容器
需求: 在kubeadm 安装的'已经运行'的 Kubernetes 集群中开启'临时容器'功能1、/etc/kubernetes/manifests/kube-apiserver.yaml添加 'EphemeralContainers=true' 开启'临时容器'功能,如下'所示'- --feature-gates=DynamicKubeletConfig=true,EphemeralContainers=true备注: 如果要开启'多个特性'门控功能用 ',' 隔开
② 集群初始化的时候开启临时容器功能
说明: 如果想在'初始化' Kubernetes 集群时'开启'临时容器功能,则修改 'kubeadm' 配置文件# init.yaml
apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
kubernetesVersion: v1.19.3
apiServer:extraArgs:feature-gates: EphemeralContainers=true然后通过 'kubeadm init' 初始化 Kubernetes 集群:kubeadm init --config init.yaml
③ 验证
1、随着集群的运行,我们需要'验证其有效性'2、最简单方法是检查 'Pod API',它现在应该包含'临时容器'部分以及通常容器kubectl explain pod.spec.ephemeralContainers
④ 容器进程共享
share-process-namespace
ephemeral-containers
feature-gates
1、验证 Pod 中是否允许'进程共享',那么可以运行:kubectl get pod pod_name -o json | jq .spec.shareProcessNamespace --> 'true'
⑤ docker 逃逸方法汇总
容器逃逸: 避免'忘记'密码,'重启'服务器 --> 弄一个备用'紧急的逃生'通路引申: 镜像是否做过'安全'扫描
相关文章:
k8s debug 浅谈
一 k8s debug 浅谈 说明: 本文只是基于对kubectl debug浅显认识总结的知识点,后续实际使用再补充案例 Kubernetes 官方出品调试工具上手指南(无需安装,开箱即用) debug-application 简化 Pod 故障诊断: kubectl-debug 介绍 1.18 版本之前需要自己…...
Day10 Liunx高级系统设计11-数据库2
DQL:数据查询语言 查询全表 select * from 表名; 查询指定列 select 列名 1, 列名 2,… from 表名 ; 条件查询 select * from 表名 where 条件 ; 注意: 条件查询就是在查询时给出 WHERE 子句,在 WHERE 子句中可以使用如下运算符及关键 字&#…...
车载导航系统UI界面,可视化大屏设计(PS源文件)
大屏组件可以让UI设计师的工作更加便捷,使其更高效快速的完成设计任务。现分享车载导航系统科技风蓝黑简约UI界面、车载系统UI主界面、车载系统科技风UI界面、首页车载系统科技感界面界面的大屏Photoshop源文件,开箱即用! 若需 更多行业 相关…...
工作之踩坑记录
1.i386架构之atol函数使用导致的业务程序错误: 情景:将框架传递的链接地址采用整形保存传输,在i386架构上导致地址比较大,采用atol转型可能导致数据被截断出现异常。 方案:采用atoll更大的数据类型进行处理即可避免该问题。 2.Json库使用注意long int问…...
【深度学习目标检测】四、基于深度学习的抽烟识别(python,yolov8)
YOLOv8是一种物体检测算法,是YOLO系列算法的最新版本。 YOLO(You Only Look Once)是一种实时物体检测算法,其优势在于快速且准确的检测结果。YOLOv8在之前的版本基础上进行了一系列改进和优化,提高了检测速度和准确性。…...
YML学习
讲解YML使用场景、语法和解析 1.基础知识1.1 什么是YML1.2 YML优点1.3 YML使用场景 2.YML语法2.1 基础语法2.2 字面量数据类型2.2.1 字符串2.2.2 NULL2.4.5 时间戳(timestamp) 2.3 对象\MAP类型2.4 数组/List/Set2.4.1 值为基础类型2.4.2 值为对象2.4.3 …...
华为HCIP认证H12-821题库下
26、6.交换技术核心知识 (单选题)某交换机运行RSTP协议,其相关配置信息如图所示,请根据命令配置情况指出对于Instance 1,该交换机的角色是: A、根交换机 B、非根交换机 C、交换机 D、无法判断 正确答案是&…...
01--二分查找
一. 初识算法 1.1 什么是算法? 在数学和计算机科学领域,算法是一系列有限的严谨指令,通常用于解决一类特定问题或执行计算 不正式的说,算法就是任何定义优良的计算过程:接收一些值作为输入,在有限的时间…...
初识大数据应用,一文掌握大数据知识文集(1)
文章目录 🏆初识大数据应用知识🔎一、初识大数据应用知识(1)🍁 01、请用Java实现非递归二分查询?🍁 02、是客户端还是Namenode决定输入的分片?🍁 03、mapred.job.tracker命令的作用?…...
Kafka生产问题总结及性能优化实践
1、消息丢失情况 消息发送端: (1)acks0: 表示producer不需要等待任何broker确认收到消息的回复,就可以继续发送下一条消息。性能最高,但是最容易丢消息。大数据统计报表场景,对性能要求很高&am…...
[MySQL]数据库原理2,Server,DataBase,Connection,latin1、UTF-8,gb2312,Encoding,Default Collation——喵喵期末不挂科
希望你开心,希望你健康,希望你幸福,希望你点赞! 最后的最后,关注喵,关注喵,关注喵,佬佬会看到更多有趣的博客哦!!! 喵喵喵,你对我真的…...
【算法集训】基础数据结构:十、矩阵
矩阵其实就是二维数组,这些题目在9日集训中已经做过,这里做的方法大致相同。 第一题 1351. 统计有序矩阵中的负数 int countNegatives(int** grid, int gridSize, int* gridColSize) {int r gridSize;int c gridColSize[0];int ret 0;for(int i 0;…...
python排序算法 直接插入排序法和折半插入排序法
最近需要使用到一些排序算法,今天主要使针对直接插入排序和折半插入排序进行讲解。 首先是直接插入排序,其排序过程主要是,针对A[a1,a2,a3,a4,a5....an],从排序的序列头部起始位置开始,将其也就是a1视为只有一个元素的…...
【flutter对抗】blutter使用+ACTF习题
最新的能很好反编译flutter程序的项目 1、安装 git clone https://github.com/worawit/blutter --depth1 然后我直接将对应的两个压缩包下载下来(通过浏览器手动下载) 不再通过python的代码来下载,之前一直卡在这个地方。 如果读者可以正…...
OpenHarmony 如何去除系统锁屏应用
前言 OpenHarmony源码版本:4.0release / 3.2 release 开发板:DAYU / rk3568 一、3.2版本去除锁屏应用 在源码根目录下:productdefine/common/inherit/rich.json 中删除screenlock_mgr组件的编译配置,在rich.json文件中搜索th…...
Python - 搭建 Flask 服务实现图像、视频修复需求
目录 一.引言 二.服务构建 1.主函数 upload_gif 2.文件接收 3.专属目录 4.图像修复 5.gif2mp4 6.mp42gif 7.图像返回 三.服务测试 1.服务启动 2.服务调用 四.总结 一.引言 前面我们介绍了如何使用 Real-ESRGAN 进行图像增强并在原始格式 jpeg、jpg、mp4 的基础上…...
C#基础——构造函数、析构函数
C#基础——构造函数、析构函数 1、构造函数 构造函数是一种特殊的方法,用于在创建类的实例时进行初始化操作。构造函数与类同名,并且没有返回类型。 构造函数在对象创建时自动调用,可以用来设置对象的初始状态、分配内存、初始化字段等操作…...
jmeter 如何循环使用接口返回的多值?
有同学在用jmeter做接口测试的时候,经常会遇到这样一种情况: 就是一个接口请求返回了多个值,然后下一个接口想循环使用前一个接口的返回值。 这种要怎么做呢? 有一定基础的人,可能第一反应就是先提取前一个接口返回…...
VLAN 详解一(VLAN 基本原理及 VLAN 划分原则)
VLAN 详解一(VLAN 基本原理及 VLAN 划分原则) 在早期的交换网络中,网络中只有 PC、终端和交换机,当某台主机发送一个广播帧或未知单播帧时,该数据帧会被泛洪,甚至传递到整个广播域。而广播域越大ÿ…...
Android - 分区存储 MediaStore、SAF
官方页面 参考文章 一、概念 分区存储(Scoped Storage)的推出是针对 APP 访问外部存储的行为(乱建乱获取文件和文件夹)进行规范和限制,以减少混乱使得用户能更好的控制自己的文件。 公有目录被分为两大类:…...
Shiro框架权限控制
首先去通过配置类的用户认证,在用户认证完成后,进行用户授权,用户通过授权之后再跳转其他的界面时,会进行一个验证,当前账号是否有权限。 前端权限控制显示的原理 在前端中,通常使用用户的角色或权限信息来…...
centOS7 安装tailscale并启用子网路由
1、在centOS7上安装Tailscale客户端 #安装命令所在官网位置:https://tailscale.com/download/linux #具体命令为: curl -fsSL https://tailscale.com/install.sh | sh #命令执行后如下图所示2、设置允许IP转发和IP伪装。 安装后,您可以启动…...
spring 项目中如何处理跨越cors问题
1.使用 CrossOrigin 注解 作用于controller 方法上 示例如下 RestController RequestMapping("/account") public class AccountController {CrossOriginGetMapping("/{id}")public Account retrieve(PathVariable Long id) {// ...}DeleteMapping(&quo…...
importlib --- import 的实现
3.1 新版功能. 源代码 Lib/importlib/__init__.py 概述 importlib 包具有三重目标。 一是在 Python 源代码中提供 import 语句的实现(并且因此而扩展 __import__() 函数)。 这提供了一个可移植到任何 Python 解释器的 import 实现。 与使用 Python 以…...
【PyTorch】现代卷积神经网络
文章目录 1. 理论介绍1.1. 深度卷积神经网络(AlexNet)1.1.1. 概述1.1.2. 模型设计 1.2. 使用块的网络(VGG)1.3. 网络中的网络(NiN)1.4. 含并行连结的网络(GoogLeNet)1.5. 批量规范化…...
用python编写九九乘法表
1 问题 我们在学习一门语言的过程中,都会练习到编写九九乘法表这个代码,下面介绍如何编写九九乘法表的流程。 2 方法 (1)打开pycharm集成开发环境,创建一个python文件,并编写第一行代码,主要构建…...
Google Gemini 模型本地可视化
Google近期发布了Gemini模型,而且开放了Gemini Pro API,Gemini Pro 可免费使用! Gemini Pro支持全球180个国家的38种语言,目前接受文本、图片作为输入并生成文本作为输出。 Gemini Pro的表现超越了其他同类模型,当前版…...
数据修复:.BlackBit勒索病毒来袭,安全应对方法解析
导言: 黑色数字罪犯的新玩具——.BlackBit勒索病毒,近来成为网络安全领域的头号威胁。这种恶意软件以其高度隐秘性和毁灭性而引起广泛关注。下面是关于.BlackBit勒索病毒的详细介绍,如不幸感染这个勒索病毒,您可添加我们的技术服…...
拓扑排序实现循环依赖判断 | 京东云技术团队
本文记录如何通过拓扑排序,实现循环依赖判断 前言 一般提到循环依赖,首先想到的就是Spring框架提供的Bean的循环依赖检测,相关文档可参考: https://blog.csdn.net/cristianoxm/article/details/113246104 本文方案脱离Spring Be…...
Java的NIO工作机制
文章目录 1. 问题引入2. NIO的工作方式3. Buffer的工作方式4. NIO数据访问方式 1. 问题引入 在网络通信中,当连接已经建立成功,服务端和客户端都会拥有一个Socket实例,每个Socket实例都有一个InputStream和OutputStream,并通过这…...
wordpress卸载 数据库/seo整站优化服务教程
点击蓝字关注我们UDExpo-Display2月28日消息 2020 年 6 月 19 日,三星电子向 WIPO(世界知识产权局)申请了一项名为 “包括子显示屏及其操作方法的电子设备”的专利,描述了一种手机,其前置摄像头部分可通过切换屏幕分层进行隐藏。该专利已于 1…...
郑州做的比较好网站公司吗/搜索引擎免费登录入口
【100个】计算机理论英文参考文献供您参考,希望能解决毕业生们的计算机理论论文参考文献哪里找相关问题,整理好参考文献那就开始写计算机理论论文吧!一、计算机理论论文参考文献范文[1]抑制OFDM信号峰均比的PTS算法分析与优化.胡茂凯.陈西宏.刘强,2011陕…...
网站服务器租金/seo排名优化怎样
关于赫夫曼编码和赫夫曼树的相关知识可參考之前两篇文章(由二叉树构造赫夫曼树、赫夫曼编码)。本文介绍还有一种构建赫夫曼树的方式,採用优先队列.步骤: 1.首先我们须要统计不同字符出现的次数。一个字符出现的次数越多࿰…...
网店开店流程步骤/谷歌seo怎么优化
一、先凑整,再补零例如:17 34 ----> 20 30 50 --> 50 1 51二、利用数字的特征例如 17 x 23 ---> (20 - 3) x (20 3) 400 - 9 391三、记住一下开方 1 ~ 10的开方 根号 1 1 根号 6 2.44…...
网站开发人员绩效如何计算/网络营销的理解
胡言乱语之gcc优化 本文为业余蒟蒻尝试分析一段简单的 C 代码在 gcc -O0、-O1、-O2 下的优化情况。 ______________ < 大佬驱散!! >--------------\ ^__^\ (oo)\___By___(__)\ CDFMLR )\/\||------||| ||做数值分析的实验,写了…...
做进行网站推广赚钱/竞价推广什么意思
在用多线程的时候,里面要用到Spring注入服务层,或者是逻辑层的时候,一般是注入不进去的。具体原因应该是线程启动时没有用到Spring实例不池。所以注入的变量值都为null。 如果在run方法里面加载application.xml,来取得bean时&…...