调度
Volcano 使用基础
· ☕ 5 分钟
1. Volcano 简介 Volcano 是华为开源的一个基于 Kubernetes 的资源调度系统,相较于原生的调度器,具有的显著特点有: 支持 gang scheduling 对于批量作业的调度,容易碰到死锁的问题,比如两个作业都需要同时运行 10 个 Pod 才能启动,当两个作业同时提交时,可能都只有部分 Pod 被调度,两个作业都无法正常

Tekton 优化之定制集群调度器
· ☕ 7 分钟
1. 受限的构建环境无法满足构建需求 Tekton 是基于 Kubernetes 集群的 CICD 引擎,相较于 Jenkins 更加云原生。说人话就是,更好开发插件、更好扩容、更好可观测性、更好玩儿。 由于代码仅能落盘公司内网,导致构建集群仅能部署于办公内网。这导致了很多受限: 硬件资源,没有弹性扩容能力 网

如何设置 Pod 到指定节点运行
· ☕ 4 分钟
1. 创建负载时,通过 nodeSelector 指定 Node 给节点添加标签 1 kubectl label node node2 project=A 指定 nodeSelector 创建工作负载 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 cat <<EOF | kubectl apply -f - apiVersion: apps/v1 kind: Deployment metadata: name: nginx-nodeselector spec: replicas: 1 selector: matchLabels: app: nginx-nodeselector template: metadata: labels: app: nginx-nodeselector spec: nodeSelector: project: A containers: - name: nginx image: nginx EOF 查看工作负载 1 2 3 4 kubectl get pod -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES

descheduler 二次调度让 Kubernetes 负载更均衡
· ☕ 4 分钟
1. 为什么需要二次调度 Kubernetes 调度器的作用是将 Pod 绑定到某一个最佳的节点。为了实现这一功能,调度器会需要进行一系列的筛选和打分。 Kubernetes 的调度是基于 Request,但是每个 Pod 的实际使用值是动态变化的。经过一段时间的运行之后,节点的负载并不均衡。一些节点负载

Jenkins为什么一直调度到同一个节点
· ☕ 3 分钟
1. 问题背景 在 Jenkins 中添加了很多个构建节点使用同一个 Label 以供流水线使用,但是 Jenkins 却每次都倾向于在同一个节点进行构建。 这导致了并发问题,单个节点的压力过大,而其他节点空闲,负载极其不均衡。 2. 业务流水线的设计 上述问题的产生和业务流水线的设计有一定的关系。