Kubernetes几种常见的调度方式以及对应的 YAML 示例
  2KFP6HqsvpD5 2023年11月02日 49 0


在 Kubernetes 中,使用 YAML 文件来定义和配置 Pod。以下是几种常见的调度方式以及对应的 YAML 示例:

  1. 基于资源需求与节点容量的调度:
apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  containers:
  - name: my-container
    image: nginx
    resources:
      requests:
        cpu: "0.5"
        memory: "512Mi"
      limits:
        cpu: "1"
        memory: "1Gi"

上述示例中,通过在 Pod 的 spec 下的 resources 字段中定义 CPU 和内存的请求和限制,Kubernetes 将会根据这些资源需求与节点容量进行调度。

  1. 亲和性调度:
apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  affinity:
    podAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
      - labelSelector:
          matchExpressions:
          - key: app
            operator: In
            values:
            - frontend
        topologyKey: kubernetes.io/hostname

上述示例中,通过在 Pod 的 spec 下的 affinity 字段中定义 podAffinity 规则,将 Pod 调度到具有 app=frontend 标签的节点上。

  1. 反亲和性调度:
apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  affinity:
    podAntiAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
      - labelSelector:
          matchExpressions:
          - key: app
            operator: In
            values:
            - backend
        topologyKey: kubernetes.io/hostname

上述示例中,通过在 Pod 的 spec 下的 affinity 字段中定义 podAntiAffinity 规则,防止将 Pod 调度到具有 app=backend 标签的同一节点上。

  1. 亲和性和反亲和性的软限制:
apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  affinity:
    podAffinity:
      preferredDuringSchedulingIgnoredDuringExecution:
      - weight: 100
        podAffinityTerm:
          labelSelector:
            matchExpressions:
            - key: app
              operator: In
              values:
              - frontend
          topologyKey: kubernetes.io/hostname
    podAntiAffinity:
      preferredDuringSchedulingIgnoredDuringExecution:
      - weight: 100
        podAffinityTerm:
          labelSelector:
            matchExpressions:
            - key: app
              operator: In
              values:
              - backend
          topologyKey: kubernetes.io/hostname

上述示例中,通过在 Pod 的 spec 下的 affinity 字段中定义 podAffinitypodAntiAffinity 规则,并设置权重值,以软限制的方式进行调度。

这些是 Kubernetes 中常见的调度方式的 YAML 示例。根据实际需求,可以组合和配置不同的调度规则,并添加其他字段(如标签选择器)来进一步定制 Pod 的调度行为。


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

上一篇: Pod 优先级和抢占 下一篇: Kubernetes的endpoint
  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
2KFP6HqsvpD5