kubesphere 自定义podTemplate支持高版本nodejs

本文介绍在 KubeSphere DevOps 中自定义 Node.js 构建环境的方法。由于官方基于 CentOS 7 的基础镜像缺少新版 Node.js 所需的 GLIBC 库,且直接升级 glibc 风险高,作者改用 AlmaLinux 9.4 作为基础镜像,重新构建 builder-base,并制作了支持 Node.js 18.20.4 的构建镜像。操作需在 Linux 环境完成,Windows 会因 Shell 语法失败。随后通过编辑 jenkins-casc-config ConfigMap,复制 nodejs 配置并替换为新镜像,即可在流水线中使用新版构建环境。该方法不仅限于 Node.js,也可扩展至 Maven、Gradle、Go 等工具链。文末提供了可直接使用的 Docker Hub 与阿里云镜像制品。

kubesphere 自定义podTemplate支持高版本nodejs

druid 性能优化

数据库连接偶发超时,核心原因是MySQL wait_timeout与Druid连接池回收参数不匹配。如MySQL设为30分钟关闭空闲连接,而Druid最小回收空闲时间设为1小时,连接池中的连接已被数据库断开,业务请求时直接报错。解决方案:一是Druid适配数据库,调小空闲回收时间(如5分钟标记可回收、20分钟强制回收),或开启validationQuery预检测(select 'x'),但高并发时性能明显下降;二是数据库适配Druid,高并发时将wait_timeout调大(如8小时),Druid空闲回收调至4小时/6小时,避免预检测损耗。关键是平衡二者超时参数,并可借助Druid监控定位慢SQL。

druid 性能优化

ingress-nginx 性能优化

访问网页时部分资源无法加载,控制台报错`net::ERR_HTTP2_SERVER_REFUSED_STREAM`或`net::ERR_FAILED`。排查发现,前端打包错误产生数百上千个JS文件,单页加载请求数接近上千,资源并行请求数达到HTTP2最大流数限制。解决方案有两种:在ConfigMap中调大`http2-max-concurrent-streams`(默认128),或设置`use-http2`为false关闭HTTP2。文章还给出nginx ingress性能优化配置:`keep-alive-requests`调至10000,`upstream-keepalive-connections`调至2000,`max-worker-connections`调至65536,以应对高并发场景,减少频繁建联和TIME_WAIT飙升。

ingress-nginx 性能优化

jvm 性能优化

文章介绍了Java JVM内存配置中的通用参数,重点阐述了-Xms与-Xmx的作用与优化价值。-Xms用于设置初始堆大小,程序启动时可预先分配指定内存(如1024MB),避免频繁申请内存导致启动耗时;-Xmx用于限制最大堆内存,防止因代码缺陷导致内存无限增长、最终耗尽系统资源宕机。通用配置还包括元空间大小、G1垃圾收集器、GC日志、OOM堆转储及编码等参数。优化建议指出,-Xms1024m与-Xmx4096m可满足多数Java服务;若明确服务内存需求,可将两者设为一致(如-Xms4096m -Xmx4096m),使JVM初始化即拥有足够内存,获得最佳性能。

jvm 性能优化

Kubernetes 网络策略 (Network Policy) 快速入门

本文�详解 Kubernetes NetworkPolicy 核心概念与 YAML 编写实战。前置条件为 CNI 插件需支持该功能。策略通过 `podSelector`(支持 `matchLabels` 与 `matchExpressions` 表达式)选定目标 Pod,再配置 `policyTypes` 指定 `Ingress`(入站)或 `Egress`(出站)方向。 关键规则逻辑:仅声明类型不写规则即“拒绝所有”;`from`/`to` 中 `namespaceSelector` 实现跨命名空间控制;**AND 关系**通过同一列表项下同时写 `namespaceSelector` 与 `podSelector`(无短横线前缀)缩小范围;**OR 关系**通过在 `from`/`to` 列表中新增带短横线的独立项实现多条件并行。文中通过拒绝/允许流量、同命名空间访问、跨命名空间标签组合、复杂出入站双向策略等完整示例,演示了从基础到复杂的网络隔离配置模式。

Kubernetes 网络策略 (Network Policy) 快速入门

Jenkins:jenkins-slave-nodejs18 & nvm

文章介绍使用Docker容器化启动Jenkins-slave并构建Node.js 18环境。先在Jenkins中新建固定节点,配置远程工作目录、标签及Java Web启动代理。通过自定义Dockerfile基于jnlp-slave镜像安装Node.js 18,并挂载宿主机docker命令与socket,实现在容器内直接调用Docker。启动连接后,构建任务通过标签表达式绑定到该节点完成npm安装与构建。进一步提供基于nvm的镜像,内置Node.js 4至22多版本,可用nvm切换满足不同项目需求。镜像已发布至阿里云镜像仓库。最后指出新版Jenkins需使用inbound-agent新镜像,避免Agent版本过旧导致连接被拒绝。

Jenkins:jenkins-slave-nodejs18 & nvm

Jenkins:从配置到部署全面指南

本文详细介绍了基于Docker部署Jenkins 2.478的完整流程,包括容器启动、域名配置、插件安装(Locale、CloudBees Docker Build and Publish、Parameterized Trigger)、汉化设置、密码修改及时区优化。操作部分演示了如何创建流水线、配置Git源码、通过Maven构建JAR包,并利用Docker Build and Publish构建推送镜像。高级操作通过Parameterized Trigger实现流水线解耦,将部署任务抽离为deploy-app,接收参数后远程拉取镜像并运行容器。同时解决了docker.sock权限不足的临时与永久方案,并指出Registry credentials不支持私有仓库的替代做法。读者可据此掌握Jenkins部署、流水线编排及常见异常处理。

Jenkins:从配置到部署全面指南

部署 kubesphere 单机 all-in-one 模式

本文介绍在Linux上部署KubeSphere 3.3.2的完整流程。推荐使用Ubuntu或CentOS系统,并强调KubeKey默认安装的Docker版本较旧,建议通过二进制方式手动安装更高版本(如23.x或以上)以提升性能与兼容性。部署前需准备全新Linux主机并配置独立IP。实际操作中,先设置KKZONE=cn以使用阿里云镜像源,下载KubeKey v3.0.7,安装conntrack和socat依赖,再执行`kk create cluster --with-kubernetes v1.22.12 --with-kubesphere v3.3.2`命令创建集群。作者使用Docker 27.2.1验证可被正常识别。安装完成后会输出控制台访问地址及默认账号密码,即可开始使用KubeSphere。

部署 kubesphere 单机 all-in-one 模式

centos7.9 安装与配置

本文介绍CentOS 7.9在VMware中的安装与基础配置。CentOS 7.9是7系列最终版,基于RHEL,使用3.10内核与XFS文件系统,支持Docker等虚拟化技术,官方维护已于2024年6月结束。文章以阿里云镜像站下载ISO为例,详述VMware虚机创建及安装流程,包括语言、上海时区、手动分区(/boot 512MB、swap 4096MB、/ 占剩余空间)、静态IP与DNS配置,并建议采用最小化安装。安装完成后需进行系统优化:因官方源已失效,需通过脚本更换中科大或清华yum源;关闭firewalld并安装iptables以配合Docker;固化IP地址;如需可升级5.x内核。读者可按步骤独立完成CentOS 7.9部署,并解决源失效导致的软件安装问题。

linux 
centos7.9 安装与配置

ubuntu server 22.04 LTS 安装与配置

本文介绍在 VMware Workstation 中安装 Ubuntu Server 22.04 的完整流程。文章先对比 Ubuntu 与 CentOS 7.9:Ubuntu 社区支持强、软件更新频繁;CentOS 7.9 已停止官方支持,存在安全隐患。安装演示使用 ubuntu-22.04.4-live-server-amd64.iso,在 VMware 中新建虚拟机,推荐 2 核 4G 配置,磁盘动态分配。安装时选择英语、默认安装、手动配置静态 IP、使用默认镜像源,并将全部硬盘空间分配给根目录。随后创建用户、跳过 Ubuntu Pro、勾选安装 OpenSSH 服务器。系统优化包括:通过 netplan 配置静态 IP、用 timedatectl 设置上海时区、修改 sshd_config 允许 root 登录(强调生产环境严禁开启)。读者可按步骤完成 Ubuntu Server 的部署与基础网络、SSH 配置。

linux 
ubuntu server 22.04 LTS 安装与配置
弹