metallb 使用技巧

MetalLB 是 Kubernetes 裸金属集群的 LoadBalancer 实现,让 type: LoadBalancer 的 Service 获得真实外部 IP,避免长期处于 pending。文中强调:生产环境不应将 Ingress 的 LoadBalancer IP 复用为 master 节点的 VIP,否则高并发业务流量会冲击 master 稳定性,建议为 Ingress 单独配置虚拟 VIP。针对多个服务(如 Ingress-nginx、ProxySQL、Kibana)共用同一对外 VIP 的需求,MetalLB 默认一个 Service 独占 IP,但可通过在 Service 注解中添加相同的 `metallb.universe.tf/allow-shared-ip` 组名来启用共享 IP 功能;组名相同的 Service 会自动共享同一 VIP,用不同端口区分业务,互不干扰。该做法可解决地址池不足导致的 pending 问题,并简化 IP 规划。

metallb 使用技巧

使用 K8S 或 Docker 快速部署 descheduler

Kubernetes 默认调度仅在 Pod 部署时决定节点分配,健康检查失败后只会重启容器,不会重新调度,易导致节点负载不均。为解决此问题,官方提供 descheduler 附组件,通过定期执行自定义驱逐策略,将高负载节点上的 Pod 迁移至低负载节点,提升资源利用率和集群稳定性。部署方式包括 Docker 和 Kubernetes,后者需按集群版本选择源码标签,并提供 RBAC、ConfigMap 等基础配置,可按需以 Job、CronJob 或 Deployment 方式运行。使用 descheduler 能优化集群资源分配,避免不均衡分布,改善整体性能。

使用 K8S 或 Docker 快速部署 descheduler

数据库技术

本文介绍了MySQL运维中的关键配置与常用操作。配置方面,开启GTID需设置唯一server-id、gtid_mode=ON及enforce_gtid_consistency=ON,并启用二进制日志;建议max_connections=2000、lower_case_table_names=1、utf8mb4字符集、max_allowed_packet=128M、事务隔离级别为READ-COMMITTED;默认认证插件用mysql_native_password兼容旧客户端;binlog可自动清理(如259200秒)。变量支持临时全局修改,如max_connections、外键检查、函数创建信任及binlog保留时长。常用SQL包括:查询当前库各表行数及大小、按用户统计连接数、查看空闲超时变量、列出MySQL用户。内容实用,便于快速配置和排查问题。

数据库技术

kali

本文介绍Kali Linux下渗透测试常用工具与配置。内网渗透涵盖crackmapexec密码喷射(支持明文与NTLM Hash,可用netexec替代)、proxychains4代理、impacket横向移动、CobaltStrike及AdaptixC2部署;Web安全涵盖xpoc/xray扫描、dumpall还原.git源码、sstimap模板注入检测等。文中包含大量命令示例,如通过代理执行远程命令、批量喷射账号密码。还涉及Seclists字典库等辅助资源。最后补充环境配置技巧:系统汉化、免密提权、切换Java版本、修复vim右键、部署文件浏览器,帮助读者快速搭建高效的渗透测试环境。

kali

使用 K8S 或 Docker 快速部署 redis6, calico固定IP 集群

在 Kubernetes 中部署 Redis 6 三主三从分片集群,难点在于 Redis Cluster 强依赖节点固定 IP,Pod IP 漂移会导致集群损坏。使用 StatefulSet 加 PVC 无法解决,反而可能引发数据与 IP 错位。文章采用 Calico 固定 IP 注解为每个节点分配稳定 Pod IP,创建 6 个独立 Deployment 并分别绑定 PVC,且必须使用 Recreate 更新策略以保证 IP 释放和重新分配。同时提供 ConfigMap 配置(开启集群模式、AOF、认证)、6 个 NodePort Service 及集群初始化命令,并建议在节点充足时配置反亲和以分散实例。

使用 K8S 或 Docker 快速部署 redis6, calico固定IP 集群

使用 K8S 或 Docker 快速部署 redis6, hostNetwork 集群

在 Kubernetes 中部署 Redis 6 三主三从分片集群,核心难点在于 Redis Cluster 强依赖固定 IP,而 Pod IP 天然不稳定。文章指出 StatefulSet + PVC 并不能解决漂移问题,反而会破坏集群元数据。推荐方案是使用 hostNetwork 绑定宿主机 IP,并用 hostPath 将数据存于节点本地磁盘,使 Redis 成为“节点级服务”:容器只是壳,数据跟随节点,IP 永不变,集群结构稳定。同时给节点打上 redis-cluster 标签,并用 Pod 反亲和性确保实例分散在不同节点。文章提供了 ConfigMap、Deployment 配置示例,以及使用 redis-cli 初始化集群的命令,并说明需通过自定义 CoreDNS 将固定域名解析到节点 IP,避免依赖 StatefulSet 域名带来的 IP 变化问题。该方案牺牲弹性漂移,换取 Redis Cluster 必需的 IP 稳定性与数据一致性。

使用 K8S 或 Docker 快速部署 redis6, hostNetwork 集群

快速部署 Docker 28.x与Docker-Compose

本文介绍在 Linux 系统中离线安装 Docker 及 Docker Compose 的完整流程,以 Docker 28.2.2 和 Compose v2.33.1 为例。步骤包括:下载解压二进制文件、配置 daemon.json(数据目录、日志限制、cgroup 驱动等)、编写 systemd 服务并启动。同时指出云环境常见 MTU 不匹配问题(如主机 1450 而 docker0 默认 1500),需在 daemon.json 中设置 mtu 避免网络异常。还提供常用运维命令:用 docker stats 查看容器内存/CPU 排序,以及用 docker inspect 模板还原容器启动参数。文末附带一键安装脚本(x86_64),方便快速部署,若 Compose 下载失败可单独重试。读者可按此指南完成生产级 Docker 环境搭建与基础运维。

快速部署 Docker 28.x与Docker-Compose

使用 K8S 或 Docker 快速部署 metrics-server

Kubernetes 实现 HPA/VPA 自动扩缩容需先部署 metrics-server 采集节点与 Pod 指标。部署方式:可直接使用官方 YAML 清单或 Helm chart 安装,支持通过设置 replicas 大于 1 实现高可用;Kubernetes v1.21+ 及 v1.19-1.21 分别对应不同 high-availability 清单。安装后可用 kubectl top nodes/pod 验证资源占用。KubeSphere 平台需在 ClusterConfiguration 的 ks-installer 中启用 metrics_server.enabled=true。若遇到 TLS 证书校验失败(x509),可在 metrics-server 启动参数中添加 --kubelet-insecure-tls 解决。

使用 K8S 或 Docker 快速部署 metrics-server

使用 K8S 或 Docker 快速部署 Arm64 Harbor

本文介绍在 ARM 环境中利用 wise2c-devops 提供的预编译 Harbor v2.13.0 离线包快速部署 Harbor,省去编译过程。建议将 Harbor 部署在独立节点而非 Kubernetes,以免节点故障破坏组件完整性。部署步骤包括下载解压安装包、修改 harbor.yml(配置 hostname、注释 https、设置数据目录)后执行 install.sh。针对推送镜像超时问题,文中指出需将 Harbor 网络 MTU 调整为与宿主机一致(如 1450),通过修改 docker-compose.yml 中 networks 的 driver_opts 并重启解决。安全方面需删除默认 Swagger 文档(swagger.json)并将仓库设为私有、使用机器人账号。代理配置需在 harbor.yml 中设置 proxy 后依次执行 ./prepare、docker-compose down/up 才能生效。

使用 K8S 或 Docker 快速部署 Arm64 Harbor

单域名多前端组件集成方式

多个前端项目部署在同一域名时,静态资源路径易冲突。解决方法:构建阶段为各项目设置独立的 publicPath 或 base(如 Vite 的 base: '/shop/'),使资源请求带上前缀;部署层再按 URL 前缀转发。Nginx 可使用 location + alias + try_files 将 /shop/、/user/、/report/ 等分别映射到对应前端目录,并配置默认跳转;Kubernetes Ingress 也可通过 path 区分后端服务,并能用 server-snippet 将 API 前缀重写转发到 Java 服务。这样可避免资源互相覆盖,实现多项目同域共存。

单域名多前端组件集成方式
弹