系列3:基于Centos-8.6 Kubernetes使用nfs挂载pod的应用日志文件
每日禅语
古代,一位官员被革职遣返,心中苦闷无处排解,便来到一位禅师的法堂。禅师静静地听完了此人的倾诉,将他带入自己的禅房之中。禅师指着桌上的一瓶水,微笑着对官员说:“你看这瓶水,它已经放置在这里许久了,每天都有尘埃、灰烬落在里面,但它依然澄清透明。你知道这是何故吗?”官员思索了良久,似有所悟:“所有的灰尘都沉淀到瓶底了。”禅师点了点头,说道:“世间烦恼之事数之不尽,有些事越想忘掉却越挥之不去,那就索性记住它好了。就像瓶中水,如果你不停地振荡它,就会使整瓶水都不得安宁,混浊一片;如果你愿意慢慢地、静静地让它们沉淀下来,用宽广的胸怀容纳它们,那么心灵不但并未因此受到污染,反而更加纯净。”官员恍然大悟。观水学做人,时常自省,便能和光同尘,愈深邃愈安静;便能至柔而有骨,执着而穿石,以“天下之至柔,驰骋天下之至坚”。时常自省,便能灵活处世,不拘泥于形式,因时而变,因势而变,因器而变,因机而动,生机无限;时常自省,便能清澈透明,纤尘不染;时常自省,便能润泽万物,有容乃大,通达而广济天下,奉献而不图回报
文章背景
一般常用的日志挂载方式有elk,grafana等工具连接查看,但是这些方式都是需要充足的资源的,而且部署方式比较麻烦。但是搭建k8s集群以后,日志分布在不同的机器上面,需要用一种简单便捷的日志收集方式统一收集到一台机器上面做日志查看。对于自己学习或者是公司的内部系统需要做应用的日志收集,使用nfs的日志收集方式无不是一种简单且便捷的方式,本文以nfs作为远程存储,统一存放pod日志。
1.安装nfs服务(所有节点)
yum install -y nfs-utils rpcbind
2.创建共享目录设置日志收集服务器地址
本文所有日志都收集在172.17.12.24服务器上面,在24服务上面创建共享目录
mkdir -p /home/apps/nfs
chmod -R 755 /home/apps/nfs
3.编辑 /etc/exports,添加以下内容
/home/apps/nfs/ *(rw,no_root_squash,sync)
4.使配置生效
exportfs -r
5.启动服务(所有节点)
systemctl start rpcbind
systemctl start nfs
systemctl enable rpcbind
systemctl enable nfs
6.创建pv(k8s集群控制节点操作)
apiVersion: v1
kind: PersistentVolume
metadata:name: pv-nfs-prod-24namespace: prodlabels:env: uat
spec:capacity:storage: 60GivolumeMode: FilesystemaccessModes:- ReadWriteManypersistentVolumeReclaimPolicy: RetainstorageClassName: ""nfs:path: /home/apps/nfs/server: 172.17.12.24
7.创建pvc(k8s集群控制节点操作)
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: pvc-nfs-prod-24namespace: prod
spec:accessModes: # 访问模式- ReadWriteManyvolumeMode: Filesystem # 存储卷模式resources: # 资源请求requests:storage: 30GistorageClassName: ""selector:matchLabels:env: "uat"
8.配置pod使用pvc(k8s集群控制节点操作)
---
apiVersion: apps/v1
kind: Deployment
metadata:name: deploy-myapp
spec:replicas: 3selector:matchLabels:app: myapptemplate:metadata:labels:app: myappspec:affinity:nodeAffinity: # pod调度preferredDuringSchedulingIgnoredDuringExecution:- weight: 1preference:matchExpressions:- key: typeoperator: Invalues:- "app"- key: envoperator: Invalues:- "uat"containers:- name: myappimage: harbor.neiwang.com/demo/myapp:1.0.2imagePullPolicy: IfNotPresentports:- name: main-httpcontainerPort: 8201- name: main-dubbocontainerPort: 28201env:- name: POD_NAME # 使用Downward API获取POD名称valueFrom:fieldRef:apiVersion: v1fieldPath: metadata.nameenvFrom: # 引用configMap中的环境变量- configMapRef:name: cm-common- configMapRef:name: cm-springvolumeMounts:- mountPath: /app/logname: logdirsubPathExpr: myapp/$(POD_NAME) # 使用子目录, 便于定位指定pod的日志volumes:- name: logdirpersistentVolumeClaim:claimName: pvc-nfs-prod-24imagePullSecrets: # 从私有harbor仓库拉取镜像需要配置账户信息的secret- name: registry-harbor---
apiVersion: v1
kind: Service
metadata:name: svc-myapp
spec:selector:app: myappports:- name: main-httpprotocol: TCPport: 8201targetPort: 8201- name: main-dubboprotocol: TCPport: 28201targetPort: 28201
9.启动并且查看日志
使用yaml文件创建deployment和service
kubectl create -f myapp.yaml
查看pod是否启动
kubectl get pods
到nfs服务端查看是否有新生成的pod文件
相关文章:
系列3:基于Centos-8.6 Kubernetes使用nfs挂载pod的应用日志文件
每日禅语 古代,一位官员被革职遣返,心中苦闷无处排解,便来到一位禅师的法堂。禅师静静地听完了此人的倾诉,将他带入自己的禅房之中。禅师指着桌上的一瓶水,微笑着对官员说:“你看这瓶水,它已经…...
Jfinal项目整合Redis
1、引入相关依赖 <!-- https://mvnrepository.com/artifact/redis.clients/jedis --> <dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.9.0</version> </dependency><depen…...
在Ubuntu服务器上备份文件到自己的百度网盘
文章目录 概述安装bypy同步文件定时任务脚本 概述 之前自购了一台阿里云服务器,系统镜像为Ubuntu 22.04, 并且搭建了LNMP开发环境(可以参考:《Ubuntu搭建PHP开发环境操作步骤(保姆级教程)》)。由于项目运行中会产生附…...
Unity 模板测试透视效果(URP)
可以实现笼中窥梦和PicoVR中通过VST局部透视效果。 使用到的Shader: Shader "Unlit/StencilShader" {Properties{[IntRange]_Index("Stencil Index",Range(0,255))0}SubShader{Tags{"RenderType""Opaque""Queue""Geo…...
《计算机视觉证书:开启职业发展新航道》
一、引言 在当今科技飞速发展的时代,计算机视觉技术正以惊人的速度改变着我们的生活和工作方式。从智能手机的人脸识别解锁到自动驾驶汽车的环境感知,计算机视觉技术的应用无处不在。而计算机视觉证书作为这一领域的专业认证,其作用愈发凸显…...
.NET6 WebApi第1讲:VSCode开发.NET项目、区别.NET5框架【两个框架启动流程详解】
一、使用VSCode开发.NET项目 1、创建文件夹,使用VSCode打开 2、安装扩展工具 1>C# 2>安装NuGet包管理工具,外部dll包依靠它来加载 法1》:NuGet Gallery,注意要启动科学的工具 法2》NuGet Package Manager GUl,…...
Git-分布式版本控制工具
目录 1. 概述 1. 1集中式版本控制工具 1.2分布式版本控制工具 2.Git 2.1 git 工作流程 1. 概述 在开发活动中,我们经常会遇到以下几个场景:备份、代码回滚、协同开发、追溯问题代码编写人和编写时间(追责)等。备份的话是为了…...
C++ 第10章 对文件的输入输出
https://www.bilibili.com/video/BV1cx4y1d7Ut/?p147&spm_id_from333.1007.top_right_bar_window_history.content.click&vd_sourcee8984989cddeb3ef7b7e9fd89098dbe8 🍁🍁🍁本篇为贺宏宏老师C语言视频教程文件输入输出部分笔记整理…...
【机器学习】手写数字识别的最优解:CNN+Softmax、Sigmoid与SVM的对比实战
一、基于CNNSoftmax函数进行分类 1数据集准备 2模型设计 3模型训练 4模型评估 5结果分析 二、 基于CNNsigmoid函数进行分类 1数据集准备 2模型设计 3模型训练 4模型评估 5结果分析 三、 基于CNNSVM进行分类 1数据集准备 2模型设计 3模型训练 4模型评估 5结果分…...
android 聊天界面键盘、表情切换丝滑
1、我们在聊天页面时候,往往会遇到,键盘、表情、其他选择切换时候页面会出现掉下来再弹起问题,这是因为,我们切换时候,键盘异步导致内容View高度变化,页面掉下来后,又被其他内容顶起这种很差视觉…...
Web项目图片视频加载缓慢/首屏加载白屏
Web项目图片视频加载缓慢/首屏加载白屏 文章目录 Web项目图片视频加载缓慢/首屏加载白屏一、原因二、 解决方案2.1、 图片和视频的优化2.1.1、压缩图片或视频2.1.2、 选择合适的图片或视频格式2.1.3、 使用图片或视频 CDN 加速2.1.4、Nginx中开启gzip 三、压缩工具推荐 一、原因…...
关于Git分支合并,跨仓库合并方式
关于Git合并代码的方式说明 文章目录 关于Git合并代码的方式说明前情提要开始合并方式一:git merge方式二:git cherry-pick方式三:git checkout Git跨仓库合并的准备事项前提拉取源仓库代码 前情提要 同仓库不同分支代码的合并可直接往下看文…...
[网络] UDP协议16位校验和
16位校验和是udp报头中的一个字段,绝大多数的教材和网课都会忽略这个字段,不去细究,我闲的蛋疼问了问ai,得到了一个答案,故作此文,以证明我爱学习之心惊天地泣鬼神(狗头 ai的回答 仅从作用来说,它会根据整个应用层报文进行运算,生成一个准确的数字,这个数字不能保证唯一性,但根…...
Vue 3 中的 `update:modelValue` 事件详解
在 Vue 3 中,update:modelValue 事件通常与 v-model 指令一起使用,以实现自定义组件的双向数据绑定。以下是对该事件的详细分析: 事件定义 首先,我们需要在组件中定义 update:modelValue 事件。可以使用 defineEmits 函…...
vue3+vite+ts 使用webrtc-streamer播放海康rtsp监控视频
了解webrtc-streamer webrtc-streamer 是一个使用简单机制通过 WebRTC 流式传输视频捕获设备和 RTSP 源的项目,它内置了一个小型的 HTTP server 来对 WebRTC需要的相关接口提供支持。相对于ffmpegflv.js的方案,延迟降低到了0.4秒左右,画面的…...
QT数据库(四):QSqlRelationalTableModel 类
关系数据库概念 例如下列departments、majors、studInfo 这 3 个数据表之间存在关系。 主键与外键 标记“**”的是主键字段,标记“*”的是外键字段。主键字段是一个数据表中表示记录唯一性的字段,例如 studInfo 数据表中的 studID 字段。外键字段是与其…...
蓝桥杯刷题——day5
蓝桥杯刷题——day5 题目一题干解题思路一代码解题思路二代码 题目二题干解题思路代码 题目一 题干 给定n个整数 a1,a2,⋯ ,an,求它们两两相乘再相加的和,即: 示例一: 输入: 4 1 3 6 9 输出: 117 题目链…...
YOLO11改进-模块-引入多尺度差异融合模块MDFM
遥感变化检测(RSCD)专注于识别在不同时间获取的两幅遥感图像之间发生变化的区域。近年来,卷积神经网络(CNN)在具有挑战性的 RSCD 任务中展现出了良好的效果。然而,这些方法未能有效地融合双时相特征&#x…...
vlan和vlanif
文章目录 1、为什么会有vlan的存在2、vlan(虚拟局域网)1、vlan原理1. 为什么这样划分了2、如何实现不同交换机相同的vlan实现互访呢3、最优化的解决方法,vlan不同交换机4、vlan标签和vlan数据帧 5、vlan实现2、基于vlan的划分方式1、基于接口的vlan划分方式2、基于m…...
Apache Kylin最简单的解析、了解
官网:Overview | Apache Kylin 一、Apache Kylin是什么? 由中国团队研发具有浓厚的中国韵味,使用神兽麒麟(kylin)为名 的一个OLAP多维数据分析引擎:(据官方给出的数据) 亚秒级响应ÿ…...
多模态2025:技术路线“神仙打架”,视频生成冲上云霄
文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...
linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...
2.Vue编写一个app
1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...
基础测试工具使用经验
背景 vtune,perf, nsight system等基础测试工具,都是用过的,但是没有记录,都逐渐忘了。所以写这篇博客总结记录一下,只要以后发现新的用法,就记得来编辑补充一下 perf 比较基础的用法: 先改这…...
【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...
使用 SymPy 进行向量和矩阵的高级操作
在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...
零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...
【笔记】WSL 中 Rust 安装与测试完整记录
#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统:Ubuntu 24.04 LTS (WSL2)架构:x86_64 (GNU/Linux)Rust 版本:rustc 1.87.0 (2025-05-09)Cargo 版本:cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...
GitFlow 工作模式(详解)
今天再学项目的过程中遇到使用gitflow模式管理代码,因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存,无论是github还是gittee,都是一种基于git去保存代码的形式,这样保存代码…...
