编辑
2025-11-04
云计算-Kubernetes
00

OpenKruise 是阿里云开源的 Kubernetes 增强组件,提供原地升级、Sidecar 容器管理、高级发布策略等原生 Kubernetes 不具备的能力。本文基于 K8s 1.30.1 版本,详细介绍 OpenKruise 1.8.0 的完整安装与验证流程。

核心内容包括:

  1. 环境准备:提前安装 Helm 并配置国内源,下载 OpenKruise 离线镜像包(a1e4d262ffb0.tar)及 Helm Chart 包(kruise-1.8.0.tgz

  2. 安装部署:通过 docker load 导入镜像,使用 helm install 命令完成 Kruise 组件安装

  3. 部署验证:使用 helm listhelm statuskubectl get pod 等命令确认组件运行状态

  4. 功能测试:提供完整的 StatefulSet 测试 YAML,展示 OpenKruise 核心特性:

    • apps.kruise.io/v1beta1 API 版本扩展
    • 原地升级策略(podUpdatePolicy: InPlaceIfPossible
    • 就绪门控(readinessGates 中的 InPlaceUpdateReady
    • 分区更新(partition 控制更新范围)

本文适用于需要在 Kubernetes 集群中引入高级工作负载管理能力的运维和开发人员。

编辑
2025-07-26
开发工具-Git
00

CentOS 7 默认 YUM 源中的 Git 版本较旧(通常为 1.8.x),无法满足现代开发流程对高版本 Git 的需求。本文介绍通过源码编译方式将 Git 升级到 2.47 版本的完整步骤。核心内容包括:安装编译依赖包(curl-devel、openssl-devel、expat-devel 等)、从内核官网下载 Git 源码包、解压并执行 ./configure && make && make install 编译安装,以及重启终端后通过 git --version 验证升级结果。

本文适用于需要在 CentOS 7 环境中使用高版本 Git 的开发及运维人员。

编辑
2025-05-07
DevOps-最佳实践
00

GitLab 作为功能丰富的 DevOps 平台,默认启用了大量组件,但在生产环境中往往需要根据实际需求进行精简与调优。本文基于 GitLab 14.8.2 版本,提供一套完整的自定义配置方案。核心内容包括:Registry 镜像仓库配置(HTTP 地址、调试端口、存储删除启用)、数据库与缓存调优(PostgreSQL 共享缓冲区 1GB、Redis 最大客户端 5000)、Web 服务器优化(Puma 工作进程与线程数、Nginx 客户端最大请求体 512MB、工作进程与连接数调优)、禁用非必要组件(Prometheus 监控栈、Grafana、GitLab Pages、Mattermost、KAS、Sentinel 等),以及 Sidekiq 并发控制和 Registry Nginx 独立端口配置。

本文适用于需要在生产环境部署精简高效 GitLab 实例的运维人员。

编辑
2025-04-30
DevOps-配置管理
00

Ansible 是业界主流的自动化运维工具,默认输出格式为人类可读的文本。但在与 CI/CD 系统、监控平台或自动化脚本集成时,JSON 格式的结构化输出更便于程序解析。本文以 CentOS 7 环境为例,详细介绍 Ansible 2.4.6 的离线安装方法及 JSON 输出配置。

核心内容包括:

  1. 软件包安装

    • 从官方仓库下载 ansible-2.4.6.0-1.el7.ans.noarch.rpm
    • 使用 yum localinstall 完成本地安装
    • 通过 ansible --version 验证安装结果
  2. JSON 输出配置

    • 查看可用回调插件:ansible-doc -t callback -l | grep json
    • 修改 /etc/ansible/ansible.cfg 配置文件:
      ini
      stdout_callback = json callback_whitelist = json, yaml bin_ansible_callbacks = True 可选配置:指定 Python 解释器路径(interpreter_python)
  3. 测试验证

    • 执行 ansible -m ping 127.0.0.1,验证输出格式为 JSON
    • 输出内容包含 plays、tasks、stats 等结构化字段

本文适用于需要通过 Ansible 与外部系统(如 Jenkins、ELK、Prometheus)进行数据对接的运维开发人员。

编辑
2025-04-06
云计算-Kubernetes
00

在 Kubernetes 集群中,Pod 默认使用 CoreDNS 解析集群内部域名(如 Service、Pod 等)。但当业务应用需要解析自定义的内部域名(如 *.odboy.com)时,默认配置无法满足需求。本文提供一套完整的解决方案:在宿主机上部署 BIND9 作为内部域名服务器,并通过修改 CoreDNS 配置,将特定域名的解析请求转发到 BIND9

核心内容包括:

  1. BIND9 安装与配置:在 CentOS 7 宿主机上安装 BIND9,修改 named.conf 监听所有接口、开启递归查询、添加转发器,并创建自定义区域文件 odboy.com.zone

  2. 区域文件配置:配置泛域名解析(* 通配符),将所有 odboy.com 子域名指向同一 IP(如 192.168.235.128

  3. CoreDNS 转发配置:修改 CoreDNS ConfigMap,新增 odboy.com:53 配置块,使用 forward 插件将查询转发到宿主机 BIND9 服务

  4. 验证与测试:通过 dig 命令验证 BIND9 和 CoreDNS 转发是否生效,并在 Pod 内部使用 nslookup 测试域名解析

本文适用于需要在 Kubernetes 集群内解析自定义内部域名的运维和开发人员。