理解 Kubernetes 的 Scheduler
概述 kube-scheduler 是 Kubernetes 集群的核心组件之一,它负责为新创建的 Pods 分配节点。它根据多种因素进行决策,包括: 资源需求和限制:考虑每个 Pod 请求的资源量(如 CPU 和内存)以及节点上可用的资源。 亲和性和反亲和性规则:根据 Pod 的亲和性设置选择最适合的节点。 健康检查:确保选择的节点健康且能够运行 Pod。 负载均衡:尽量平衡集群中各个节点的负载。 使用 limits 和 reuqests 在部署对象中的 spec 中常常会见到关于 limits 和 requests 的声明 ,例如: apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: replicas: 1 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx resources: limits: memory: 1Gi cpu: 1 requests: memory: 256Mi cpu: 100m 这里的 limits 和 requests 是与 Pod 容器资源管理相关的两个关键概念: Limits:指定容器运行时能够使用的最大资源量 Requests:指定容器启动时最低需要的资源量 limits 和 requests 跟 scheduler 有什么关系 ? ...