news 2026/10/24 1:52:56

Kubernetes-学习记录

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Kubernetes-学习记录

1、资源限制和亲和性

工作中遇到一个问题,就是GDE环境部署微服务应用的时候,能不能做到一个节点上部署多个相同的微服务应用,或者说想在一个节点上将一个微服务实现多实例部署。

根据这个要求,就去查看了一下微服务的deployment资源定义配置文件,找到了调度策略相关的配置信息如下:

apiVersion: apps/v1 kind: Deployment metadata: name: resource-aware-deployment spec: replicas: 3 selector: matchLabels: app: resource-app template: metadata: labels: app: resource-app spec: affinity: podAntiAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 100 podAffinityTerm: labelSelector: matchExpressions: - key: app operator: In values: - resource-app topologyKey: "kubernetes.io/hostname" containers: - name: app image: my-app:1.0 resources: requests: memory: "128Mi" cpu: "100m" limits: memory: "256Mi" cpu: "200m"

从上面的配置中有Kubernetes配置是Pod反亲和性调度策略,详细解释如下

1.1、Pod发亲和性调度策略

配置结构如下:

affinity: podAntiAffinity: # Pod反亲和性(分离Pod) preferredDuringSchedulingIgnoredDuringExecution: # 调度时偏好的软性要求 - weight: 100 # 权重(0-100) podAffinityTerm: # 满足条件的定义 labelSelector: # 选择哪些Pod需要分开 matchExpressions: - key: app # 选择app标签 operator: In # 包含关系 values: - resource-app # 标签值为resource-app的Pod topologyKey: "kubernetes.io/hostname" # 基于节点拓扑域

关键参数说明如下:

1. podAntiAffinity(Pod反亲和性) 目的:让相同服务的Pod尽量分散部署 效果:提高高可用性,避免单点故障 对比:亲和性(affinity.podAffinity)则是让Pod聚合 2. preferredDuringSchedulingIgnoredDuringExecution 调度阶段:只在Pod调度时考虑 忽略运行时:Pod运行后即使节点上出现冲突Pod也不会迁移 软性约束:尽可能满足,但不强制 3. weight: 100 权重值:0-100,数值越大优先级越高 实际影响:100表示高度优先,调度器会尽量寻找最佳节点 4. topologyKey: "kubernetes.io/hostname" 拓扑域:定义为单个节点 作用:确保相同服务不会部署在同一物理节点上 其他拓扑域选项: kubernetes.io/zone(可用区) kubernetes.io/region(区域)

1.2、Pod亲和性调度策略

反亲和性调度策略,确保的微服务实例部署在不同的节点上。那么亲和性调度策略,就可以实现一个节点部署多个相同的微服务实例。配置结构示例如下

spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: # 强制要求(硬性条件) nodeSelectorTerms: - matchExpressions: # 匹配条件 - key: kubernetes.io/hostname # 匹配节点标签:主机名 operator: In # 操作符:包含(在列表中) values: - node-1 # 必须是主机名为node-1的节点

上面亲和性调度策略配置的作用说明如下:

具体作用 key: kubernetes.io/hostname:使用Kubernetes标准标签,每个节点都自动有一个kubernetes.io/hostname标签,值为节点的主机名 operator: In:表示"包含"关系 values: [node-1:只接受主机名为node-1的节点 这个配置会确保: Pod只能被调度到名为node-1的节点上 如果node-1节点不存在或不可用,Pod会一直处于Pending状态 其他节点不会被考虑来运行这个Pod

以上是管理kubenetes的调度策略中亲和性相关配置的学习记录

2、hostPath卷详解

hostPath 是一种将宿主机节点 上的文件或目录直接挂载到 Pod 内部的卷类型。它提供了 Pod 与宿主机之间直接文件系统交互的能力,

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/24 1:51:25

视频网站无水印下载(傻瓜版)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/24 1:47:56

TgtoDrive性能优化:如何提高监控效率与转存速度的终极指南

TgtoDrive性能优化:如何提高监控效率与转存速度的终极指南 TgtoDrive作为一款全流程网盘媒体自动化平台,在资源监控、自动转存、智能整理和STRM生成方面表现出色。本文将为您揭秘TgtoDrive性能优化的核心技巧,帮助您显著提升监控效率和转存速…

作者头像 李华
网站建设 2026/10/24 1:46:02

RPCS3 安装 PS3 固件:4 步跑通,告别 Missing Firmware 警告

RPCS3 安装 PS3 固件:4 步跑通,告别 Missing Firmware 警告 【免费下载链接】rpcs3 PlayStation 3 emulator and debugger 项目地址: https://gitcode.com/GitHub_Trending/rp/rpcs3 RPCS3 固件安装是跑 PS3 游戏的前置条件,没装固件时…

作者头像 李华
网站建设 2026/10/24 1:44:47

zapret-discord-youtube国际化:多语言支持和本地化方案

zapret-discord-youtube国际化:多语言支持和本地化方案 概述 zapret-discord-youtube 是一个专为 Windows 系统设计的网络流量绕过工具,主要用于解除对 Discord 和 YouTube 等国外平台的封锁。随着用户群体的全球化扩展,项目的国际化&#xf…

作者头像 李华