k8s指定node调度

本文介绍了如何在 Kubernetes (k8s) 中将 Pod 指定调度到特定 Node 上。通过设置 NodeName 和使用 Label 进行选择,确保主服务的 Beego 应用部署在 node1,而判题器的两个 Judger 分别通过 IP 和 Label 选择调度到 node2。在打标签和修改 YAML 文件后,应用成功按照预期分布在目标 Node 上。
摘要由CSDN通过智能技术生成

概述

  • 在使用过程中,如果希望指定的pod放在自己希望的node节点上可以进行调度,选择对应的node节点。
    在这里插入图片描述
  • 可以看出可以使用节点的ip地址或者是在node节点添加标签,让pod调度器使用selector进行选择,这里我将使用两种方法,将主服务的beego端放在node1上,将判题器的两个judger放在node2上,judger1使用ip选择,judger2使用lable选择。

调度

nodename调度

apiVersion: apps/v1
kind: Deployment
metadata:
  name: unioj-judger-deployment
  namespace: default
spec:
  selector:
    matchLabels:
      app: unioj-judger
  replicas: 1
  template:
    metadata:
      labels:
        app: unioj-judger
    spec:
      nodeName: k8s-node2
      restartPolicy: Always
      containers:
      - name: unioj-judger
        image: registry.cn-beijing.aliyuncs.com/uyistcoj/unioj-judger
        imagePullPolicy: Always
        ports:
        - containerPort: 7999
        resources:
          requests:
            memory: 100Mi
            cpu: 400m
        livenessProbe:
          httpGet:
            path: /healthy
            port: 7999
          initialDelaySeconds: 3
          periodSeconds: 3
          successThreshold: 1        # 健康阀值 
  • 问题:直接使用192.168.10.66会导致pending一直无法调度,故而使用node的名字,估摸着是集群不认识ip

lable调度

打标签

  • 打标签
kubectl label nodes <node-name> <label-key>=<label-value> 
  • 查看标签
[root@k8s-master1 pods]# kubectl get node --show-labels
NAME          STATUS   ROLES                  AGE   VERSION   LABELS
k8s-master1   Ready    control-plane,master   30d   v1.21.2   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-master1,kubernetes.io/os=linux,node-role.kubernetes.io/control-plane=,node-role.kubernetes.io/master=,node.kubernetes.io/exclude-from-external-load-balancers=
k8s-node1     Ready    <none>                 30d   v1.21.2   beta.kubernetes.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值