资讯详情

Kubernetes-学习记录

📅 2026/10/24 1:53:01 | 华诺云谱 👁 阅读
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 与宿主机之间直接文件系统交互的能力,
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑