• 全部
  • 经验案例
  • 典型配置
  • 技术公告
  • FAQ
  • 漏洞说明
  • 全部
  • 全部
  • 大数据引擎
  • 知了引擎
产品线
搜索
取消
案例类型
发布者
是否解决
是否官方
时间
搜索引擎
匹配模式
高级搜索

cloud os pod调度

16小时前提问
  • 0关注
  • 0收藏,49浏览
粉丝:1人 关注:0人

问题描述:

E5138P01H03  clod os5.0创建多实例POD,因为PV挂载在worker04节点,导致调度到其它节点(例如下图的worker07)的pod无法创建,现在想手动调度回4节点,怎么操作。

后端采用的X10000存储产品,提供iscsi存储,但PVC仅支持单节点读写方式。

         此限制,导致无法在所有工作节点部署需要的卷。

4 个回答
粉丝:10人 关注:9人

操作步骤(Cloud OS 5.0兼容K8s命令):
1. 确认POD所属资源及命名空间:kubectl get pods -A | grep
2. 给对应Deployment(控制器管理场景)添加节点选择器,指定调度到worker04:
kubectl patch deployment <部署名> -n <命名空间> -p '{"spec":{"template":{"spec":{"nodeSelector":{"kubernetes.io/hostname":"worker04"}}}}}'
3. 删除旧POD(控制器自动重建到指定节点):kubectl delete pod <旧POD名> -n <命名空间>
4. 验证:kubectl get pod <新POD名> -n <命名空间> -o wide,确认节点为worker04。

暂无评论

粉丝:12人 关注:2人

CloudOS5.0 X10000 iSCSI 单写 PVC,Pod 固定调度 worker04 完整方案
故障根因
X10000 提供 iSCSI、PVC 访问模式为ReadWriteOnce (RWO 单节点独占读写),PV 仅在 worker04 完成 iSCSI 挂载;Pod 被调度到 worker07 等其他节点时,目标节点无对应 iSCSI lun 挂载,卷挂载失败、Pod 创建报错。RWO 存储天然约束:所有使用该 PVC 的 Pod 必须固定运行在 PV 所在 worker04。
方案一:CloudOS WEB 界面操作(优先,可视化修改 Deployment/POD 调度)
1、节点打标签(绑定 worker04)
CloudOS→资源→集群→节点管理,找到worker04节点
编辑节点→添加标签:storage-node=worker04,保存
其他节点不加该标签,调度器只能匹配 worker04
2、修改应用部署配置,强制调度至 worker04
应用工厂→找到对应 POD 所属应用→编辑部署配置
进入调度策略 / 节点选择配置项:
节点选择器:填入storage-node:worker04(nodeSelector 规则)
保存配置,删除异常 pending 的 Pod,控制器自动重建 Pod 至 worker04
3、紧急临时强制调度(已经 pending 的 Pod 快速落地)
WEB 无即时迁移按钮,采用重建:删除异常 Pod,依托上面 nodeSelector 规则,新建 Pod 直接落到 worker04。
方案二:后台 kubectl 命令行(应急快速落地)
1、给 worker04 打节点标签
bash
运行
kubectl label nodes worker04 storage-node=worker04
2、修改 Deployment 增加 nodeSelector,固定节点
bash
运行
#编辑部署
kubectl edit deploy 应用名 -n 命名空间
#在spec.template.spec下新增配置
spec:
template:
spec:
nodeSelector:
storage-node: worker04
保存退出,Deployment 滚动重建 Pod,全部调度 worker04。
3、极端锁定:nodeName 强制写死节点(跳过调度器,必跑 worker04)
yaml
spec:
template:
spec:
nodeName: worker04
nodeName 优先级最高,直接绕过 kube-scheduler,强制在指定节点创建 Pod。
方案三:从 PV 源头约束(根治,推荐长期配置)
RWO iSCSI PV 可在 PV 配置里写入nodeAffinity,从存储层限制 Pod 只能调度 PV 所在节点,后续新建 PVC/POD 自动约束 worker04:
yaml
apiVersion: v1
kind: PersistentVolume
spec:
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- worker04
CloudOS WEB 编辑对应 PV→高级配置→节点亲和绑定 worker04,一劳永逸,后续不会再调度其他节点。
补充优化:污点屏蔽其他节点(防止后续误调度)
如需彻底杜绝 Pod 跑到非 worker04 节点,给 worker07 等其余节点添加污点:
bash
运行
kubectl taint nodes worker07 storage=readonly:NoSchedule
无对应容忍规则的 Pod 无法调度到此节点。
总结最简操作步骤
worker04 打标签storage-node=worker04;
应用部署配置添加节点选择storage-node:worker04;
删除异常 Pod,自动重建至 worker04;
长期优化:PV 绑定 nodeAffinity 锁定 worker04。

暂无评论

粉丝:17人 关注:1人

在 Kubernetes(包括 H3C CloudOS 底层)中,您遇到的问题是典型的 Volume Node Affinity Conflict(卷节点亲和性冲突)。由于 X10000 提供的 iSCSI PVC 仅支持单节点读写(RWO),该持久化存储卷(PV)会被绑定到最初挂载它的 worker04 节点上。当 Pod 被调度到其他节点(如 worker07)时,调度器会因跨节点挂载限制而拒绝创建。
要将该 Pod 强制调度回 worker04 节点,或者解决此类调度问题,您可以采用以下几种方法:

方法一:使用 nodeName 强制指定节点(最快实现需求)

如果您希望立即将 Pod 固定运行在 worker04 节点上,最直接的方法是绕过 Kubernetes 的默认调度器,直接在 Pod 的 YAML 配置中硬编码节点名称。
操作步骤:
编辑您的 Deployment 或 Pod 模板,在 spec 层级下添加 nodeName 字段:
1apiVersion: apps/v1 2kind: Deployment 3metadata: 4 name: your-app 5spec: 6 template: 7 spec: 8 nodeName: worker04 # 强制指定调度到 worker04 节点 9 containers: 10 - name: app-container 11 image: your-image 12 volumeMounts: ...
⚠️ 风险提示:此操作会绕过调度器的资源评估和污点检查。如果 worker04 节点宕机或资源耗尽,Pod 将无法自动迁移并持续处于 Pending 状态。建议仅在排查故障或明确知道目标节点可用时使用。

方法二:使用节点亲和性 (Node Affinity) 调度(生产推荐)

相比于 nodeName,节点亲和性允许调度器在满足条件的前提下进行更智能的调度,是生产环境推荐的精准调度方式。
操作步骤:
首先确认 worker04 节点的标签(例如 kubernetes.io/hostname=worker04),然后在 Pod 中添加亲和性规则:
1spec: 2 affinity: 3 nodeAffinity: 4 requiredDuringSchedulingIgnoredDuringExecution: 5 nodeSelectorTerms: 6 - matchExpressions: 7 - key: kubernetes.io/hostname 8 operator: In 9 values: 10 - worker04
这告诉调度器:该 Pod 必须调度到带有 worker04 主机名的节点上。

方法三:修复 Volume Node Affinity 冲突(根本解决思路)

如果您不想每次都手动指定节点,而是希望集群能自动识别 PV 所在的节点并进行调度,需要确保 PV 的节点亲和性与节点标签匹配。
排查与修复路径:
  1. 定位 PV:通过 kubectl get pvc <pvc-name> 找到对应的 PV。
  2. 检查 PV 亲和性:查看该 PV 的 spec.nodeAffinity 规则,确认它是否明确要求了特定的拓扑域(如特定 AZ 或节点名)。
  3. 对比与修正:检查 worker04 节点的标签是否满足该 PV 的要求。如果不满足,可以通过给 worker04 补充对应标签来解决:
    1kubectl label nodes worker04 topology.kubernetes.io/zOne=your-zone


 针对 X10000 RWO 存储的架构优化建议

既然您的后端存储提供的是 iSCSI 协议,且目前受限于“单节点读写(RWO)”,导致无法多副本部署。建议在后续规划中考虑以下升级方案:
  • 开启多路径与共享访问:联系 X10000 存储管理员,确认是否可以配置为支持多节点并发访问的模式(如将 Access Mode 更改为 ReadWriteMany / RWX),从而解除单节点绑定的限制。
  • CSI 驱动优化:检查当前使用的 iSCSI CSI Driver 版本及配置,部分现代 CSI 驱动配合分布式文件系统可以原生支持跨节点的动态供给和多挂载。

暂无评论

粉丝:1人 关注:0人

deployment直接指定到节点4就行,但是节点4硬件故障服务还是起不来,最好是通过iscsi挂载好点

暂无评论

编辑答案

你正在编辑答案

如果你要对问题或其他回答进行点评或询问,请使用评论功能。

分享扩散:

提出建议

    +

亲~登录后才可以操作哦!

确定

亲~检测到您登陆的账号未在http://hclhub.h3c.com进行注册

注册后可访问此模块

跳转hclhub

你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作

举报

×

侵犯我的权益 >
对根叔社区有害的内容 >
辱骂、歧视、挑衅等(不友善)

侵犯我的权益

×

泄露了我的隐私 >
侵犯了我企业的权益 >
抄袭了我的内容 >
诽谤我 >
辱骂、歧视、挑衅等(不友善)
骚扰我

泄露了我的隐私

×

您好,当您发现根叔知了上有泄漏您隐私的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您认为哪些内容泄露了您的隐私?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)

侵犯了我企业的权益

×

您好,当您发现根叔知了上有关于您企业的造谣与诽谤、商业侵权等内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到 pub.zhiliao@h3c.com 邮箱,我们会在审核后尽快给您答复。
  • 1. 您举报的内容是什么?(请在邮件中列出您举报的内容和链接地址)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
  • 3. 是哪家企业?(营业执照,单位登记证明等证件)
  • 4. 您与该企业的关系是?(您是企业法人或被授权人,需提供企业委托授权书)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

抄袭了我的内容

×

原文链接或出处

诽谤我

×

您好,当您发现根叔知了上有诽谤您的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您举报的内容以及侵犯了您什么权益?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

对根叔社区有害的内容

×

垃圾广告信息
色情、暴力、血腥等违反法律法规的内容
政治敏感
不规范转载 >
辱骂、歧视、挑衅等(不友善)
骚扰我
诱导投票

不规范转载

×

举报说明