jupiter's blog - jupiter
type: channel
link: http://inat.top/author/1/
description: jupiter
items: NFSv4服务搭建
items: Scrutiny :一款基于web端的硬盘状态查看与监控工具
items: Copyparty:高颜值文件服务器(功能炸裂的“瑞士军刀”)(python -m强大模块)
items: Windows netsh 端口转发完全指南[临时暴露内网服务解决方案
items: Java try-with-resources 介绍
items: Trilium Notes：个人笔记/个人知识库的开源神器
items: 解决 npm 全局安装后找不到命令的问题
items: nginx编译安装
items: CenterOS ELK环境搭建
items: Kubernetes(k8s)环境搭建

NFSv4服务搭建
type: item
date: 2026-03-28T23:03:07+08:00
description: 1. 安装NFS服务端 yum install nfs-utils -y2. 创建并配置共享目录mkdir /data/nfs3.修改 /etc/exports 配置文件vim /etc/exports 在文件末尾添加一行，指定要共享的目录、允许的客户端网段和权限： /data/nfs 192.168.137.200(rw,sync,no_root_squash,fsid=0) \ 192.168.137.201(rw,sync,no_root_squash,fsid=0) \ 192.168.137.202(rw,sync,no_root_squash,fsid=0)参数说明fsid=0NFSv4 必需。标识根文件系统，NFSv4 通过此参数识别导出的根no_root_squash允许客户端 root 用户保留服务器端 root 权限rw读写权限sync同步写入，保证数据一致性4.重启服务# 重启 NFS 服务 systemctl restart nfs-server # 查看当前导出状态 exportfs -v5. 配置防火墙（NFSv4 只需开放 2049 端口）NFSv4 的优势：仅需 TCP 2049 端口！# firewalld（CentOS/RHEL） firewall-cmd --permanent --add-port=2049/tcp firewall-cmd --reload6. 客户端挂载与验证在客户端安装 NFS 支持：# CentOS/RHEL yum install nfs-utils -y挂载 NFSv4 共享：# 创建挂载点 mkdir /mnt/nfs_test # NFSv4 挂载（注意 vers=4 参数） mount -t nfs -o vers=4 192.168.137.3:/ /mnt/nfs_testdf -h验证[root@master ~]# df -h | grep nfs df: /mnt/nfs_client: Stale file handle 192.168.137.3:/ 119G 37G 76G 33%cd /mnt/nfs_test7.开机启动挂载sudo vim /etc/fstab # 在文件末尾添加以下内容： 192.168.137.3:/ /mnt/nfs_test nfs vers=4,noatime,hard,intr,_netdev 0 0 # 验证 umount /mnt/nfs_test mount -a

Scrutiny :一款基于web端的硬盘状态查看与监控工具
type: item
date: 2026-03-15T14:44:41+08:00
description: 🔍 Scrutiny 是什么？Scrutiny 是一个专注于硬盘健康状况的开源监控工具。你可以把它想象成一个为硬盘准备的“健康监测中心”，它通过读取和分析硬盘的 S.M.A.R.T. 数据，为你提供一个清晰、美观的 Web 界面，让你能实时掌握每一块硬盘的状态、性能和潜在风险。它的核心亮点是：专业的数据分析：深入分析 S.M.A.R.T. 属性，不仅看当前值，还能追踪历史趋势，帮你判断硬盘是正常老化还是即将故障。智能预警系统：可以为不同的硬盘类型（如ATA、NVMe）设置告警阈值。一旦发现异常（比如温度过高、坏道增多），它能及时发出警报，让你有机会在数据丢失前采取行动。美观的可视化界面：它内置的仪表盘非常直观，可以一目了然地看到所有硬盘的健康状态概览，并支持深入查看每一块硬盘的详细报告和历史图表。灵活的部署方式：支持 Docker 一键部署，也支持在各种操作系统上手动安装，可以轻松实现多台主机的集中监控。🐳 Docker 部署 Scrutiny（一体化模式）你希望用 Docker 部署，这是最快、最省心的方式。官方推荐使用“一体化”（Omnibus）Docker 镜像，它把 Web 界面和后端数据收集都打包在了一个容器里，非常适合个人或家庭服务器使用。1. 准备工作在你的 Linux 服务器上，确保已经安装了 docker 和 docker-compose。2. 创建 docker-compose.yml 文件在你喜欢的目录下（例如 ~/scrutiny）创建一个名为 docker-compose.yml 的文件，并写入以下内容：version: '3.5' services: scrutiny: container_name: scrutiny image: ghcr.io/analogj/scrutiny:master-omnibus cap_add: - SYS_RAWIO # 获取机械硬盘的S.M.A.R.T 信息，默认即可 - SYS_ADMIN # 获取NVMe硬盘的S.M.A.R.T 信息，没有可以删除 ports: - "8183:8080" # webapp - "8184:8086" # influxDB admin（可以不映射） volumes: - /run/udev:/run/udev:ro - ./config:/opt/scrutiny/config - ./influxdb:/opt/scrutiny/influxdb devices: - "/dev/sda" - "/dev/sdb" - "/dev/sdc" - "/dev/sdd" - "/dev/sde"配置关键点说明：ports: 将容器的 8080 端口映射到宿主机的 8183 端口（你可以修改左侧端口避免冲突）。volumes: 挂载了主机的 udev 信息，这是容器正确识别你硬盘设备的关键。同时，也挂载了配置和数据目录到本地，方便备份和修改。devices: 这一步非常关键！你需要在这里列出所有想要监控的硬盘设备。把 /dev/sda、/dev/sdb 替换成你机器上实际的设备路径（可以通过 lsblk 命令查看）。cap_add: 添加 SYS_RAWIO 能力，赋予容器读取硬盘 SMART 数据所需的权限。environment: 设置环境变量，让这个容器同时运行 Web 服务和数据收集器（Collector）。3. 启动服务在 docker-compose.yml 文件所在的目录下，运行以下命令来启动服务：docker-compose up -d4. 访问 Web 界面服务启动后，在浏览器里打开 http://<你的Linux服务器IP>:8183（如果你修改了端口，请使用对应的端口）。稍等片刻（数据收集需要点时间），你就能看到一个漂亮的 Scrutiny 仪表盘了。界面加载后，你会看到所有被识别到的硬盘概览，绿色代表健康，黄色或红色则代表有需要关注的异常。点击任意一块硬盘，就能进入详情页，查看该硬盘完整的 S.M.A.R.T. 属性数据、温度变化曲线和历史故障记录。如果硬盘真的出了问题，这里就是第一手的“诊断报告”。5 如何实现 Scrutiny 汉化获取汉化文件你可以从以下网盘链接下载由用户“我是笨蛋小扁担”制作的汉化包：链接: https://pan.baidu.com/s/1djpIcCJB2XAClQw1Q8miEg (提取码: cnfb)在 Docker 部署中应用汉化准备目录：在与你 Scrutiny 容器映射的 config、data 目录同级的位置，创建一个名为 web 的新目录。放置文件：将下载的汉化压缩包内的所有文件解压到刚刚创建的 web 目录中。修改 Docker Compose 配置：在你原来的…

Copyparty:高颜值文件服务器(功能炸裂的“瑞士军刀”)(python -m强大模块)
type: item
date: 2026-03-14T23:33:58+08:00
description: 零、Copyparty 深度介绍1. 核心哲学：极简到离谱的部署单文件即服务：整个服务器就是一个 Python 文件 (copyparty-sfx.py) 或 Windows 下的 .exe 文件，没有任何依赖，下载即用。开箱即用：无需配置数据库、无需安装复杂的依赖包，30秒内就能启动一个功能完整的文件服务器。兼容性怪兽：Python 版本：从 Python 2.7 到最新的 Python 3.x 都能运行。操作系统：Windows、Linux、macOS 是基本功，连 Windows 2000、Android（通过 Termux）、树莓派、甚至路由器都能跑。浏览器：从现代的 Chrome、Firefox，到古董级的 IE4、PSP 内置浏览器，都能访问它的 Web 界面。2. 核心功能：强得不像一个文件Copyparty 最让人着迷的是它那些超越普通文件分享的“黑科技”：功能类别具体特性体验与优势🚀 传输黑科技断点续传 (up2k 协议)上传大文件时，即使网络中断、浏览器崩溃甚至电脑重启，恢复后只需再次拖入同一个文件，它就能从中断处继续，而不是从头再来。 边传边下 (Race the Beam)上传者这边还在上传，接收方那边就可以开始下载了。上传进度即下载进度，非常适合团队紧急共享大文件。📺 媒体处理强悍的媒体能力自动为图片、视频和音频文件生成缩略图和波形图。内置的音乐播放器支持几乎所有常见格式（MP3、FLAC、AAC等），并支持实时转码，确保在任何浏览器上都能播放。🔍 搜索与去重全文搜索不仅能搜文件名，还能直接搜索文件内容里的关键词，比如在一堆 PDF 或 Word 文档里找一句话，这功能通常只有专业的文档管理系统才有。 智能去重当上传重复文件时，它不会傻傻地再存一份，而是指向已有的那份，帮你节省大量硬盘空间。🌐 多协议支持不止是 Web除了通过浏览器访问，它还原生支持 WebDAV、FTP(S)、TFTP、SMB。这意味着你可以直接把共享文件夹映射为电脑的本地磁盘来用。📦 一、安装# 使用pip安装 pip install copyparty # 如果需要增强功能（图片缩略图、音频元数据等），可以安装可选依赖 pip install copyparty[all] # 安装所有可选依赖 # 或者单独安装 pip install pillow # 图片缩略图支持 pip install mutagen # 音频元数据支持安装完成后，copyparty 命令就会添加到你的系统路径中。🚀 二、启动服务最简单启动python -m copyparty这会在当前目录启动服务，默认端口 3923，任何人都可以浏览、下载和上传文件。启动效果$ python -m copyparty Serving on http://0.0.0.0:3923 - Local: http://127.0.0.1:3923 - LAN: http://192.168.1.100:3923 - QR code: 扫描二维码用手机访问 Press Ctrl+C to stop常用启动参数场景命令说明局域网共享（读写）copyparty -v .:rw当前目录允许上传和下载自定义端口copyparty -p 8080使用8080端口启动指定共享目录copyparty -v D:\Share:rw共享指定目录只读模式copyparty -v .:r只能下载，不能上传带密码保护copyparty -a 用户名:密码 -v .:rw,用户名需要登录才能访问开启所有高级功能copyparty -e2dsa -e2ts启用搜索和音乐索引🌐 三、访问界面启动后，用浏览器访问：本机访问：http://localhost:3923局域网访问：http://你的IP:3923（如 http://192.168.1.100:3923）Web界面长什么样？🔧 四、实际使用示例示例1：快速共享当前目录（读写）# 在要共享的目录下执行 cd C:\Users\vin\Desktop\share python -m copyparty -v .:rw示例2：带密码的私人共享# 创建用户，设置权限 python -m copyparty -a alice:123456 -v ./private:rw,alice # 说明：-a 创建用户，-v 挂载目录，rw,alice 表示只有alice可读写示例3：音乐库服务器（带索引和播放）python -m copyparty -e2dsa -e2ts -v D:\Music:/music:r # 访问 http://localhost:3923/music 即可在线听歌示例4：临时接收文件（匿名上传，不暴露已有文件）python -m copyp…

Windows netsh 端口转发完全指南[临时暴露内网服务解决方案
type: item
date: 2026-03-14T21:50:50+08:00
description: Windows netsh 端口转发完全指南[临时暴露内网服务解决方案netsh (Network Shell) 是 Windows 系统自带的强大网络配置命令行工具，其中的 interface portproxy 组件可以实现系统级的端口转发功能。📋 一、什么是 netsh 端口转发？端口转发是指将发往本机某个端口的网络流量，自动重定向到另一个目标地址和端口的过程。而 netsh 实现的是系统内核级别的端口转发，在 TCP/IP 协议栈层面完成流量转发。核心特点特性说明无需安装Windows 系统原生支持（Windows XP/Vista/7/8/10/11/Server 全系列）系统级转发在内核层面完成，对应用程序透明TCP 协议支持只支持 TCP 协议（不支持 UDP、ICMP 等）持久性规则永久生效（直到手动删除或系统重置）支持 IPv4 和 IPv6支持 v4tov4、v4tov6、v6tov4、v6tov6 四种组合🚀 二、核心命令详解2.1 添加端口转发规则基本语法：netsh interface portproxy add v4tov4 listenaddress=本地IP listenport=本地端口 connectaddress=目标IP connectport=目标端口参数说明：参数必填说明示例listenaddress否本机监听的IP地址192.168.1.100 或 0.0.0.0(所有接口)listenport是本机监听的端口8080connectaddress是目标服务器IP或域名10.0.0.5 或 example.comconnectport是目标服务器端口80常用示例：转发到内网服务器netsh interface portproxy add v4tov4 listenport=8080 connectaddress=192.168.1.100 connectport=80指定监听IP（多网卡环境）netsh interface portproxy add v4tov4 listenaddress=192.168.1.10 listenport=8080 connectaddress=10.0.0.5 connectport=3389IPv6 到 IPv4 转发netsh interface portproxy add v6tov4 listenport=8080 connectaddress=192.168.1.100 connectport=80转发到外部域名netsh interface portproxy add v4tov4 listenport=443 connectaddress=www.example.com connectport=4432.2 查看转发规则查看所有规则：netsh interface portproxy show all查看特定类型规则：netsh interface portproxy show v4tov4 netsh interface portproxy show v4tov6 netsh interface portproxy show v6tov4 netsh interface portproxy show v6tov6输出示例：侦听 ipv4: 连接到 ipv4: 地址 端口 地址 端口 --------------- ---------- --------------- ---------- 192.168.1.10 8080 10.0.0.5 3389 0.0.0.0 443 192.168.1.100 4432.3 删除转发规则删除单条规则：netsh interface portproxy delete v4tov4 listenaddress=192.168.1.10 listenport=8080批量删除：# 删除所有 v4tov4 规则 netsh interface portproxy reset🔧 三、完整实战案例场景1：远程桌面（RDP）转发将内网机器 A（192.168.1.100）的远程桌面（3389）通过本机（192.168.1.10）的 13389 端口暴露给外网。cmd# 1. 添加转发规则（管理员权限） netsh interface portproxy add v4tov4 listenport=13389 connectaddress=192.168.1.100 connectport=3389 # 2. 检查规则 netsh interface portproxy show all # 3. 开放防火墙端口 netsh advfirewall firewall add rule name="RDP F…

Java try-with-resources 介绍
type: item
date: 2026-03-14T21:02:41+08:00
description: Java try-with-resources 介绍1. 什么是 try-with-resources？try-with-resources 是 Java 7 引入的一个特性，用于自动管理资源（如文件流、数据库连接、网络连接等）。它确保每个资源在语句结束时自动关闭，无需显式编写 finally 块。优点：代码简洁：减少样板代码安全可靠：自动确保资源关闭异常处理更完善：保留原始异常，关闭异常作为抑制异常可读性更好：清晰地看到资源声明和使用范围2. 基本语法try (ResourceType resource = new ResourceType()) { // 使用资源的代码 } catch (ExceptionType e) { // 异常处理 }3. 工作原理资源必须实现 AutoCloseable 或 Closeable 接口在 try 块结束后，资源会按照声明的相反顺序自动关闭资源关闭操作在 finally 块之前执行4. 支持多资源try (FileInputStream fis = new FileInputStream("input.txt"); FileOutputStream fos = new FileOutputStream("output.txt")) { byte[] buffer = new byte[1024]; int length; while ((length = fis.read(buffer)) > 0) { fos.write(buffer, 0, length); } } catch (IOException e) { e.printStackTrace(); }5. 异常处理机制try-with-resources 提供了更优雅的异常处理机制：public class ResourceExample { static class Resource1 implements AutoCloseable { public void use() throws Exception { throw new Exception("异常发生在使用资源时"); } @Override public void close() throws Exception { throw new Exception("异常发生在关闭资源时"); } } public static void main(String[] args) { try (Resource1 r1 = new Resource1()) { r1.use(); } catch (Exception e) { System.out.println("捕获的异常: " + e.getMessage()); Throwable[] suppressed = e.getSuppressed(); System.out.println("被抑制的异常数量: " + suppressed.length); } } }6. 实际应用示例文件操作示例import java.io.*; public class FileCopyExample { public static void copyFile(String source, String dest) { // 传统方式 /* FileInputStream fis = null; FileOutputStream fos = null; try { fis = new FileInputStream(source); fos = new FileOutputStream(dest); byte[] buffer = new byte[1024]; int length; while ((length = fis.read(buffer)) > 0) { fos.write(buffer, 0, length); } } catch (IOException e) { e.printStackTrace(); } finally { try { if (fis != null) fis.close(); if (fos != null) fos.close(); } catch (IOException e) { e.printStackTrace(); } } */ // try-with-resources 方式 try (FileInputStream fis = new FileInputStream(source); FileOutputStream fos = new FileOutputStream(dest)) { byte[] buffer = new byte[1024]; int leng…

Trilium Notes：个人笔记/个人知识库的开源神器
type: item
date: 2026-03-10T23:15:31+08:00
description: 1.Trilium Notes 详细介绍Trilium Notes 是一款开源、免费、支持自部署的层级化知识管理软件。简单来说，它是一个专门为构建个人知识库（俗称"第二大脑"）而设计的强大工具。1.1 核心定位与普通的笔记软件不同，Trilium 的设计理念是帮助你像管理文件系统一样管理知识。如果你觉得普通笔记本（如印象笔记）的笔记本-笔记两级结构不够用，或者觉得双链笔记（如 Obsidian）的网状结构过于自由而难以驾驭，Trilium 提供了一个介于两者之间的树状结构解决方案。1.2 核心特色1. 无限层级的树状结构这是 Trilium 最显著的特点。你可以像在电脑上创建文件夹一样，无限层级地组织笔记：📁 知识库 ├── 📁 编程学习 │ ├── 📁 前端 │ │ ├── 📄 React 笔记 │ │ └── 📄 Vue 笔记 │ └── 📁 后端 │ ├── 📄 Python │ └── 📄 数据库设计 ├── 📁 项目管理 │ ├── 📄 方法论 │ └── 📁 实际案例 └── 📁 生活记录 └── 📄 旅行日记💡 为什么重要：这种结构符合人类自然的分类思维，特别适合整理有明确归属关系的知识体系。2. 笔记克隆功能这是 Trilium 最强大的特性之一。一篇笔记可以同时出现在多个位置（类似于文件快捷方式或标签功能），但内容只有一份：示例：一篇关于"Python 装饰器"的笔记，既可以放在"编程语言/Python"目录下，又可以同时出现在"设计模式/Python实现"目录下更新同步：修改其中任何一个位置的笔记内容，所有克隆都会同步更新适用场景：一篇笔记涉及多个主题，或者需要多维度分类时非常实用3. 丰富的笔记类型Trilium 不只支持普通的富文本笔记，还内置了多种特殊类型：笔记类型用途文本笔记标准富文本编辑，支持表格、图片、待办清单等Markdown纯文本 Markdown 编辑代码笔记语法高亮，可直接运行部分代码画板笔记内置 Excalidraw，可以手绘流程图、思维导图关系图可视化展示笔记之间的连接关系书签保存网页链接文件直接存储 PDF、图片等文件4. 强大的搜索与脚本能力全文搜索：支持高级搜索语法（如 note.title:"Python" AND ~30d 表示搜索近30天内修改的标题含Python的笔记）脚本自动化：支持 JavaScript 脚本，可以：批量修改笔记属性自动生成日报/周报从外部 API 拉取数据生成笔记自定义导出格式5. 多端同步与加密同步机制：通过自部署的服务器，实现桌面端、移动端（Web 端）之间的笔记同步端到端加密：笔记在传输和存储时都可以加密，保护隐私版本控制：自动保存笔记历史版本，可以随时回溯2.Docker Compose 部署 (推荐)2.1 创建部署目录在你的服务器或NAS上创建一个目录，例如 trilium-cn，并进入该目录。2.2 创建 docker-compose.yml 文件在该目录下新建一个名为 docker-compose.yml 的文件，并将以下内容复制进去：version: '3' services: trilium-cn: image: nriver/trilium-cn:latest container_name: trilium-cn restart: always ports: - "8080:8080" # 左边端口可自定义，如 8070:8080 volumes: # 将当前目录下的 data 文件夹挂载到容器内，用于持久化存储你的笔记 - ./trilium-data:/root/trilium-data environment: # 告诉容器数据存储在哪里，必须与 volumes 中的容器内路径一致 - TRILIUM_DATA_DIR=/root/trilium-data2.3启动容器在 docker-compose.yml 所在目录下，打开终端并运行命令 docker-compose up -d 即可在后台启动服务。3.访问测试

解决 npm 全局安装后找不到命令的问题
type: item
date: 2025-12-26T22:41:58+08:00
description: 解决 npm 全局安装后找不到命令的问题0.示例使用 npm 全局安装包后命令找不到时，通常是由于环境变量配置问题或 npm 配置路径不一致导致的。npm install -g asar asar -V # 提示找不到命令1.检查 npm 配置路径首先，检查 npm 的全局安装路径和缓存路径是否正确。npm config get prefix npm config get cache如果路径不正确，可以通过以下命令设置正确的路径：npm config set prefix "C:\Users\Administrator\AppData\Roaming\npm" npm config set cache "C:\Users\Administrator\AppData\Local\npm-cache"2.添加环境变量确保将 npm 的全局安装路径添加到系统环境变量中（prefix对应的值）。打开系统属性，选择“高级系统设置”。点击“环境变量”按钮。在“系统变量”中找到 Path，并编辑它。添加 npm 全局安装路径，例如 C:\Users\Administrator\AppData\Roaming\npm。3.验证asar -V v3.2.0

nginx编译安装
type: item
date: 2025-08-10T11:45:12+08:00
description: 1.依赖安装yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel2.下载安装包并解压官网地址：https://nginx.orgwget https://nginx.org/download/nginx-1.27.2.tar.gztar -zxvf nginx-1.27.2.tar.gz cd nginx-1.27.23.开始编译安装./configure --with-http_ssl_module make && make install安装完成后的安装目录在/usr/local/nginx4.配置开机启动项cd /usr/local/ngin useradd nginx vim nginx.service[Unit] Description=nginx After=network.target [Service] User=nginx Group=nginx Type=forking ExecStart=/usr/local/nginx/sbin/nginx ExecReload=/usr/local/nginx/sbin/nginx -s reload ExecStop=/usr/local/nginx/sbin/nginx -s quit PrivateTmp=true [Install] WantedBy=multi-user.targetln -s /usr/local/nginx/nginx.service /usr/lib/systemd/system/nginx.service systemctl daemon-reload service nginx status service nginx restart service nginx status5.配置启动bin的软连接ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx# nginx -V nginx version: nginx/1.27.2 built by gcc 7.3.0 (GCC) built with OpenSSL 1.1.1f 31 Mar 2020 TLS SNI support enabled configure arguments: --with-http_ssl_module [root@oa-app-7 nginx]#参考资料nginx源码编译安装（详解） - penngke - 博客园 (cnblogs.com)nginx: downloadnginx配置https后报错nginx: [emerg] https protocol requires SSL support in XXX.conf详细解决方法-CSDN博客nginx 普通用户使用80端口启动nginx nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)_nginx 端口80普通用户-CSDN博客

CenterOS ELK环境搭建
type: item
date: 2025-06-06T23:46:11+08:00
description: 1.准备工作1.1 安装jdk8(可以省略)下载安装包wget https://mirrors.tuna.tsinghua.edu.cn/Adoptium/8/jdk/x64/linux/OpenJDK8U-jdk_x64_linux_hotspot_8u422b05.tar.gz解压并移动到目标路径tar xzvf OpenJDK8U-jdk_x64_linux_hotspot_8u422b05.tar.gz mv jdk8u422-b05 jdk8 mv jdk8 /software/配置环境变量 vim ~/.bashrcexport JAVA_HOME=/software/jdk8 export PATH=$PATH:$JAVA_HOME/bin source ~/.bashrc验证[root@localhost ~]# java -version2.Elasticsearch 部署2.1 源码部署[单节点]下载源码包并解压下载地址：https://www.elastic.co/cn/downloads/elasticsearchhttps://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.14.3-linux-x86_64.tar.gz tar xzvf elasticsearch-8.14.3-linux-x86_64.tar.gz mkdir /data/elasticsearch mv elasticsearch-8.14.3 /data/elasticsearch/ cd /data/elasticsearch/elasticsearch-8.14.3/创建es启动用户# 创建用户 useradd es # 目录授权 chown es:es -R /data/elasticsearch/elasticsearch-8.14.3/ES 不能用root启动，否则会出现报错cd bin [root@localhost bin]# ./elasticsearch warning: ignoring JAVA_HOME=/software/jdk8; using bundled JDK Jul 28, 2024 12:07:26 AM sun.util.locale.provider.LocaleProviderAdapter <clinit> WARNING: COMPAT locale provider will be removed in a future release [2024-07-28T00:07:26,940][INFO ][o.e.n.NativeAccess ] [localhost.localdomain] Using [jdk] native provider and native methods for [Linux] [2024-07-28T00:07:26,953][ERROR][o.e.b.Elasticsearch ] [localhost.localdomain] fatal exception while booting Elasticsearchjava.lang.RuntimeException: can not run elasticsearch as root at org.elasticsearch.server@8.14.3/org.elasticsearch.bootstrap.Elasticsearch.initializeNatives(Elasticsearch.java:286) at org.elasticsearch.server@8.14.3/org.elasticsearch.bootstrap.Elasticsearch.initPhase2(Elasticsearch.java:169) at org.elasticsearch.server@8.14.3/org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:74) See logs for more details. ERROR: Elasticsearch did not exit normally - check the logs at /software/elasticsearch-8.14.3/logs/elasticsearch.log ERROR: Elasticsearch died while starting up, with exit code 1系统参数配置#1、设置系统参数 *表示所有用户生效 echo '* soft…

Kubernetes(k8s)环境搭建
type: item
date: 2025-03-20T21:50:00+08:00
description: Kubernetes(k8s)环境搭建1.机器准备实验环境用了3台centerOS的虚拟机节点类型IP主机名操作系统mater192.168.1.16node1centerOSslaver1192.168.1.17node2centerOSslaver2172.24.87.84node3centerOS2.准备工作三台机器都需要进行处理2.1关闭防火墙和禁用 selinux## 禁用selinux，关闭内核安全机制 sestatus setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config ## 关闭防火墙，并禁止自启动 systemctl stop firewalld systemctl disable firewalld systemctl status firewalld2.2 关闭交换分区# 临时关闭 swapoff -a # 永久关闭 sed -i '/swap/s/^/#/' /etc/fstab2.3 服务器内核优化# 这种镜像信息可以通过配置内核参数的方式来消除 cat >> /etc/sysctl.conf << EOF # 启用ipv6桥接转发 net.bridge.bridge-nf-call-ip6tables = 1 # 启用ipv4桥接转发 net.bridge.bridge-nf-call-iptables = 1 # 开启路由转发功能 net.ipv4.ip_forward = 1 # 禁用swap分区 vm.swappiness = 0 EOF ## # 加载 overlay 内核模块 modprobe overlay # 往内核中加载 br_netfilter模块 modprobe br_netfilter # 加载文件内容 sysctl -pmodprobe 动态加载的模块重启会失效，因此需要执行如下配置cat << EOF >>/etc/sysconfig/modules/iptables.modules modprobe -- overlay modprobe -- br_netfilter EOF chmod 755 /etc/sysconfig/modules/iptables.modules #设置权限 sh /etc/sysconfig/modules/iptables.modules #临时生效2.4 各节点时间同步## 安装同步时间插件 yum -y install ntpdate ## 同步阿里云的时间 ntpdate ntp.aliyun.com3. Containerd 环境部署3.1 安装Containerd(手动)# 安装containerd wget https://github.com/containerd/containerd/releases/download/v1.7.27/containerd-1.7.27-linux-amd64.tar.gz tar xzvf containerd-1.7.27-linux-amd64.tar.gz cp -f bin/* /usr/local/bin/ # 安装runc wget https://github.com/opencontainers/runc/releases/download/v1.2.6/runc.amd64 chmod +x runc.amd64 mv runc.amd64 /usr/local/bin/runc # 安装cni plugins wget https://github.com/containernetworking/plugins/releases/download/v1.6.2/cni-plugins-linux-amd64-v1.6.2.tgz rm -fr /opt/cni/bin mkdir -p /opt/cni/bin tar Cxzvf /opt/cni/bin cni-plugins-linux-amd64-v1.6.2.tgz # 安装 nerdctl wget https://github.com/containerd/nerdctl/releases/download/v2.0.3/nerdctl-2.0.3-linux-amd64.tar.gz tar Cxzvf /usr/local/bin nerdctl-2.0.3-linux-amd64.tar.gz # 安装crictl wget https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.32.0/crictl-v1.32…