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

在 Kubernetes 集群中,Pod 亲和性(Affinity)和反亲和性(Anti-Affinity)是高级调度策略,用于精细控制 Pod 的分布,从而优化资源使用、降低延迟并提升服务可靠性。本文系统讲解两者的概念、应用场景与核心配置参数。Pod 亲和性(靠近运行)包括节点亲和性(根据节点标签调度)和 Pod 亲和性(与特定 Pod 共同部署),适用于需要低延迟协作的服务(如数据库与 Web 服务器)。Pod 反亲和性(远离运行)避免同类 Pod 集中于同一节点,适用于高可用部署,防止单点故障。核心配置参数详解:requiredDuringSchedulingIgnoredDuringExecution(硬性要求,不满足则无法调度)、preferredDuringSchedulingIgnoredDuringExecution(软性偏好,优先尝试但不强制)、topologyKey(定义拓扑域,如 kubernetes.io/hostnamefailure-domain.beta.kubernetes.io/zone)、labelSelector(通过 matchLabels 匹配目标 Pod 标签)。

本文适用于需要深入理解 Kubernetes 调度策略的运维与开发人员。

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

在 Kubernetes 集群中,标签(Labels)、污点(Taints)和容忍度(Tolerations)是精细控制 Pod 调度与资源隔离的核心机制。本文系统讲解三者的概念、作用对象与协作方式。标签(作用于各类 Kubernetes 对象)通过键值对实现资源组织与选择,如 environment: production,可使用 kubectl get pods -l environment=production 进行过滤筛选。污点(作用于 Node)用于标记节点不应接受普通 Pod,通过 kubectl taint nodes node1 special-key=true:NoSchedule 添加,效果包括 NoSchedule(禁止调度)、PreferNoSchedule(尽量不调度)、NoExecute(驱逐已有 Pod)。容忍度(作用于 Pod)允许 Pod 忽略特定污点,通过 tolerations 字段配置,实现授权 Pod 调度到有污点的节点。三者协作实现多租户隔离、硬件故障隔离、资源优化等场景的精细化调度控制。

本文适用于需要深入理解 Kubernetes 调度机制的运维与开发人员。

编辑
2025-04-09
编程语言-Java
00

良好的包命名规范是 Maven 项目可维护性和团队协作的基础。本文提供一套完整的分层架构包命名规范,参考主流企业级 Spring Boot 项目实践。核心结构涵盖:api(查询接口与实现,按业务模块划分,内含 dto 参数对象与 impl 实现类)、constant(常量和枚举)、controller(对外控制器)、convert(MapStruct 类型转换器)、dal(数据访问层,细分为 dataobject 数据库实体与 mysql Mapper)、framework(脚手架基础设施,如验证码、数据权限、操作日志、短信等子模块)、job(定时任务)、mq(消息队列,含 config/consumer/producer)、repository(对接三方服务如 GitLab、Jenkins、K8s,按服务名细分)、service(业务接口与实现,含 dto 业务参数)、util(工具类)。本文附有完整示例(权限、菜单、用户、角色等模块)。

适用于需要统一 Maven 项目包结构的 Java 开发团队。

编辑
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 集群内解析自定义内部域名的运维和开发人员。

编辑
2025-03-20
编程语言-JavaScript
00

在多模块 Maven 项目中,依赖传递常导致 Jar 包冲突,引发运行时异常(如 NoSuchMethodError)。本文介绍 IDEA 插件 Maven Helper 的安装与使用方法。核心步骤:通过 IDEA 插件市场(Marketplace)搜索并安装 Maven Helper;打开项目最外层 pom.xml,切换到 Dependency Analyzer 视图,点击 Refresh UI 和 Reimport 刷新依赖树;在搜索框中输入冲突类所在 Jar 包名称(如 gson),以树形结构查看所有引入该依赖的传递路径;右键选中低版本或冲突的依赖,选择 Exclude 排除;最后验证业务功能是否正常。

本文适用于需要快速定位并解决 Maven 依赖冲突的 Java 开发者。