k8s日志管理
k8s日志管理
- k8s查看日志
- 查看集群中不是完全运行状态的pod
- 查看deployment日志
- 查看service日志
- 进入pod的容器内查看日志
- 管理k8s组件日志
- kubectl logs查看日志原理
- 管理k8s应用日志
- 收集k8s日志思路
- 收集标准输出
- 收集容器中日志文件
- k8s查看节点状态失败
- k8s部署prometheus监控
k8s查看日志
# 查看pod日志
kubectl logs po pod名 -n namespace名称# 获取容器实例的 pod 日志(标准输出)
kubectl logs my-pod --previous

# 流式输出 Pod 的日志(标准输出)
kubectl logs po pod名 -n namespace名称 -f

# 获取含 name=myLabel 标签的 Pods 的日志(标准输出)
kubectl logs -l name=myLabel# 流式输出含 name=myLabel 标签的 Pod 的所有日志(标准输出)
kubectl logs -f -l name=myLabel --all-containers

查看集群中不是完全运行状态的pod
# 列出 Kubernetes 集群中所有不是完全运行状态的 Pods
## 1/1, 2/2, 3/3, 4/4, 5/5, 6/6: 这些通常表示 Pod 中的容器数量/期望的容器数量,比如 1/1 表示一个容器正在运行,并且只有一个容器是期望运行的,因此 Pod 状态是好的。
## Com: 这可能是用于匹配 "Completed" 状态的 Pods 的缩写。
## NAME: 可能用于排除输出中的表头行。
kubectl get pods -A -o wide |grep -vE "1/1|2/2|3/3|4/4|5/5|6/6|Com|NAME"

查看deployment日志
# 查看deployment日志
kubectl logs deploy deploy名称 -n namespace名称
kubectl logs -f deploy/my-deployment -n namespace名称# 获取一个Deployment的Pod的日志(多容器例子)
kubectl logs deploy/my-deployment -c my-container
kubectl logs -f deploy/my-deployment -c my-container
查看service日志
# 查看service日志
kubectl logs svc svc名称 -n namespace名称
kubectl logs svc/服务名
进入pod的容器内查看日志
# 挂接到一个运行的容器中
kubectl attach my-pod -i# 进入pod的终端内查看日志
kubectl exec -ti pod名称 -- bash# 查看容器内主进程id
# 查看指定pid的输出
## 1 = stdout, 2 = stderr
tail /proc/<pid>/fd/1

# 输出pod中容器的日志(stdout,pod中有多个容器的情况下使用)
# 获取 Pod 容器的日志(标准输出, 多容器场景)
kubectl logs my-pod -c 容器名# 流式输出 Pod 容器的日志(标准输出, 多容器场景)
kubectl -f logs my-pod -c 容器名
管理k8s组件日志
k8s系统的组件日志
# 查看你systemd守护进程管理的组件日志
## kubelet是systemd方式运行的
journalctl -u kubelet# 查看Pod部署的组件日志
## k8s的其他组件都是pod运行的
kubectl logs kube-proxy-xxx -n kube-system## 持续查看日志
kubectl logs -f kube-proxy-xxx -n kube-system# 从OS中查看日志
tail /var/log/messages# 持续查看OS日志
tail -f /var/log/messages
kubectl logs查看日志原理
kubectl logs (获取容器标准输出的日志) -----> apiserver -----> kubelet -----> docker(接管容器标准输出并写入文件中持久化保存) -----> 获取某个容器的日志
# 标准输出在宿主机的路径:
/var/lib/docker/containers/容器id/容器id-json.log# 想要查看该日志文件
## 先通过pod名称查询容器id
docker ps|grep pod名称## 进入该容器id的目录
cd /var/lib/docker/containers/容器id/## 查看该容器id的log
cat 容器id-json.log# 防止文件过大打开卡死,可以使用
less 容器id-json.log
管理k8s应用日志
k8s集群上部署的
应用程序日志
收集k8s日志思路

收集标准输出
针对标准输出;
以DaemonSet方式在每个Node上部署一个日志收集程序,采集/var/lib/docker/containers/目录下所有容器日志
收集容器中日志文件
针对容器中日志文件;
在Pod中增加一个容器运行日志采集器,使用emtyDir共享日志目录,让日志采集器读取日志文件.
k8s查看节点状态失败
参考: https://www.cnblogs.com/dudu/p/12146344.html

需要安装Prometheus监控组件
才能使用kubectl get pods -n monitoring命令
k8s部署prometheus监控
官方网站 https://prometheus.io/
官方文档 https://prometheus.io/docs/introduction/overview/
https://github.com/prometheus-operator/kube-prometheus
# clone项目
git clone https://github.com/prometheus-operator/kube-prometheus.gitcd kube-prometheus# apply
kubectl apply --server-side -f manifests/setup

# apply
kubectl apply -f manifests/# 查看部署是否成功
until kubectl get servicemonitors --all-namespaces ; do date; sleep 1; echo ""; done

# 查看节点状态
kubectl get pods -n monitoring

相关文章:
k8s日志管理
k8s日志管理 k8s查看日志查看集群中不是完全运行状态的pod查看deployment日志查看service日志进入pod的容器内查看日志 管理k8s组件日志kubectl logs查看日志原理 管理k8s应用日志收集k8s日志思路收集标准输出收集容器中日志文件 k8s查看节点状态失败k8s部署prometheus监控 k8s…...
【数据结构】顺序表-元素去重
数据元素 结点定义,复杂数据类型,可用作整体性的管理系统。如果单独研究某些数据,比如只看学号或成绩,那么直接使用int之类的简单数据类型亦可。对应修改:typedef int Elemtype; typedef struct student{ //定义学生…...
物理安全——问答
目录 1、计算机的物理安全包含哪些内容 1. 设备保护 2. 访问控制 3. 电力与环境安全 4. 数据存储保护 5. 硬件防护 6. 监控与审计 7. 灾难恢复与应急响应 8. 拆卸与维修安全 2、物理安全有哪些需要关注的问题 1、计算机的物理安全包含哪些内容 1. 设备保护 防止盗窃&…...
element-plus中,Loading 加载组件的使用
一.基本使用 给一个组件,如:table表格,加上v-loading"true"即可。 举例:复制如下代码。 <template><el-table v-loading"loading" :data"tableData" style"width: 100%"><…...
Mybatis_Plus中的常用注解
目录 1、TableName TableId TableId的type属性 TableField 1、TableName 经过以上的测试,在使用MyBatis-Plus实现基本的CRUD时,我们并没有指定要操作的表,只是在 Mapper接口继承BaseMapper时,设置了泛型User,而操…...
云数据库概念
1.云数据库概念 云数据库是部署和虚拟化在云计算环境中的数据库。云数据库是在云计算的大背景下发展起来的一种新兴的共享基础架构的方法,它极大地增强了数据库的存储能力,消除了人员、硬件、软件的重复配置,让软、硬件升级变得更加容易。云…...
高并发金融系统,“可观测-可追溯-可回滚“的闭环审计体系
一句话总结 在高并发金融系统中,审计方案设计需平衡"观测粒度"与"系统损耗",通过双AOP实现非侵入式采集,三表机制保障操作原子性,最终形成"可观测-可追溯-可回滚"的闭环体系。 业务痛点与需求 在…...
UDP视频传输中的丢包和播放花屏处理方法
在处理UDP视频传输中的丢包和花屏问题时,需要结合编码优化、网络传输策略和接收端纠错技术。以下是分步骤的解决方案: 1. 前向纠错(FEC,Forward Error Correction) 原理:在发送数据时附加冗余包,接收方通过冗余信息恢复丢失的数据包。 实现方法: 使用Reed-Solomon、XO…...
企业内训|DeepSeek技术革命、算力范式重构与场景落地洞察-某头部券商
3月19日北京,TsingtaoAI公司负责人汶生受邀为某证券公司管理层和投资者举办专题培训,围绕《DeepSeek技术革命、算力范式重构与场景落地洞察》主题,系统阐述了当前AI技术演进的核心趋势、算力需求的结构性变革,以及行业应用落地的关…...
K8S学习之基础五十二:k8s配置jenkins
k8s配置jenkins...
VS Code C/C++项目设置launch.json中的environment参数解决支持库路径问题
问题描述 Windows 11 VS Code C/C 开发环境搭建分别写了c和cpp两个示例代码,在运行过程中c代码没有发现问题(可能简单,没有用到太多支持),但使用了stl的cpp代码并没有运行出来,如下图: 出问题…...
怎样解决 Windows 11 上的 DirectX 错误,最新DX 问题解决方法
在使用 Windows 11 操作系统的过程中,大家可能会遇到 DirectX 错误的情况,这可能会给游戏体验、多媒体应用甚至是系统的整体性能带来负面影响。不过别担心,本文将为大家详细介绍如何解决 Windows 11 上的 DirectX 错误,让您的系统…...
Spring AOP中为所有类型通知传递参数的完整示例,包含详细注释和参数传递方式
以下是Spring AOP中为所有类型通知传递参数的完整示例,包含详细注释和参数传递方式: // 1. 目标类(被增强的类) package com.example;public class TargetService {public void doTask(String param) {System.out.println("…...
.net平台C#对于2D/二维点云处理用哪些库?
对于单线激光雷达生成的2D点云数据的处理, 虽然比较简单, 但网上的资料比较少, PCL是避不开的, 但它主要处理的是3D点云, 对2D也可以处理, 但它是C语言的, 如果使用的是C语言开发&#x…...
PH热榜 | 2025-03-30
1. Deepcord 标语:Discord 数据分析:获取指标洞察与受众研究 介绍:Deepcord:为社区建设者提供的Discord分析工具。跟踪超过50万个服务器的指标,发现热门社区,监控竞争对手,找到你的目标受众。…...
STM32H743学习记录
2025/03/30 SRAM速率计算方式 MCU主频 乘以 单片机位数 除以 每个字节的位数(8)即可得出单片机的SRAM速率 如72M主频32位单片机速率 72 * 32 / 8 288 M/s FLASH速率计算方式 FLASH大小 乘以 单片机位数 除以 每个字节位数(8)…...
Open webui的使用
问题 之前本地量化模型管理器ollama的文章,我们知道可以通过ollama来管理本地量化模型,也能够在命令行中与相关模型进行对话。现在我们想要在有个web页面通过浏览器来与本地模型对话。这里我们就使用Open webui作为界面来与本地模型对话。 安装启动 这…...
swagger上传图片请求报错
1.如下是上传图片的接口 ApiOperation(value "WF开卡审核-关店换卡信用卡证明")PostMapping(value "/uploadPhoto/{id}")public Result<?> uploadPhoto(List<MultipartFile> file,PathVariable Long id) {return wfAuditService.uploadPhot…...
STM32单片机的桌面宠物机器人(基于HAL库)
效果 基于STM32单片机的桌面宠物机器人 概要 语音模块:ASR PRO,通过天问block软件烧录语音指令 主控芯片:STM32F103C8T6 使用HAL库 屏幕:0.96寸OLED屏,用来显示表情 4个舵机,用来当作四只腿 底部一个面…...
python 语法篇(一)
目录 1 正则匹配注意点11.1 正则匹配字符串写法1.2 创建re函数(1)re.search()--搜索第一个匹配项(2)re.match() - 从字符串开头匹配(3)re.findall() - 返回所有匹配项的列表(4)re.fi…...
【记录自己第一个github 100星项目】采用flask框架构建一个前端页面,进行OpenManus的调用,对OpenManus生成的文件进行预览。
OpenManus-WebUI...
flutter android端抓包工具
flutter做的android app,使用fiddler抓不了包,现介绍一款能支持flutter的抓包工具Reqable,使用方法如下: 1、下载电脑端安装包 下载地址为【https://reqable.com/zh-CN/download/】 2、还是在上述地址下载 android 端apk…...
求矩阵某列的和
设计函数sum_column( int A[E1(n)][E2(n)], int j ),E1(n)和E2(n)分别为用宏定义的行数和列数,j为列号。在该函数中,设计指针ptr&A[0][j],通过*ptr及ptrptrE2(n)访问第j列元素,从而求得第j列元素的和。在主函数中定…...
Ubuntu 22 Linux上部署DeepSeek R1保姆式操作详解(ollama方式)
操作系统:Ubuntu Linux 22.04 一、安装模型运行环境 打开链接https://ollama.com/download/linux 1.安装ollama (1)一条指令即可实现的简易版安装方法(也可称为在线安装) curl -fsSL https://ollama.com/install.s…...
软件工程面试题(十五)
1、servlet 创建过程以及ruquest,response,session的生命周期? Servlet的创建过程: 第一步 public class AAA extends HttpServlet{ 实现对应的doxxx方法 } 第二步: 在web.xml中配置 <servlet> <servlet-name></servlet-name> <servlet-c…...
深度学习处理时间序列(6)
RNN的高级用法 循环dropout(recurrent dropout):这是dropout的一种变体,用于在循环层中降低过拟合。 循环层堆叠(stacking recurrent layers):这会提高模型的表示能力(代价是更…...
【鸿蒙5.0】向用户申请麦克风授权
#效果图 步骤 在 config.json 里声明权限:在项目的 config.json 文件中添加麦克风权限的声明,告知系统应用需要使用该权限。检查权限状态:在代码里检查应用是否已经获得了麦克风权限。请求权限:若应用未获得麦克风权限࿰…...
用 Python 实现机器学习小项目:从入门到实战
用 Python 实现机器学习小项目:从入门到实战 在人工智能蓬勃发展的今天,机器学习早已成为技术人绕不开的关键词。无论你是初学者还是转行者,学习一门编程语言并通过小项目实战,都是掌握机器学习的最佳方式。本文将以 Python 为编程…...
从“制造”到“智造”:生产线自动检测的技术变革与实践
从“制造”到“智造”:生产线自动检测的技术变革与实践 在工业4.0的浪潮下,生产线自动检测技术正成为制造业转型升级的关键驱动力。传统的人工检测方式因效率低、误差高、成本高等问题,逐渐被更智能、更高效的自动检测技术所取代。本文将从技术背景、核心技术、应用场景以及…...
【解决】导入PNG图片,转 Sprite 格式成功但资产未生效问题
开发平台:Unity 6.0 图片格式:.png 问题描述 当 PNG 成功转换为 Sprite(精灵)时,资产状态将显示扩展箭头,即表明该资产可 Sprite 使用。 解决方法:设置正确的 Sprite Mode Single 关于 Spr…...
