查看: 100|回复: 0

kubernetes之Pod分配到指定Node

[复制链接]

0

主题

0

回帖

0

积分

热心网友

金币
0
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2012-4-19
发表于 2020-1-21 10:35:00 | 显示全部楼层 |阅读模式

简介

此文主要讲述如何将Pod分配到指定Node节点

备注:此文档参考官方文档,并加以自己的理解。如有误导性的内容,请批评指正。

给Node添加标签

1、查看当前集权中,所有node的标签

# kubectl get nodes --show-labels

输出结果如下:

NAME           STATUS   ROLES    AGE   VERSION   LABELS
k8s-master01   Ready    master   25d   v1.17.0   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-master01,kubernetes.io/os=linux,node-role.kubernetes.io/master=
k8s-master02   Ready    master   25d   v1.17.0   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-master02,kubernetes.io/os=linux,node-role.kubernetes.io/master=
k8s-master03   Ready    master   25d   v1.17.0   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-master03,kubernetes.io/os=linux,node-role.kubernetes.io/master=
k8s-node01     Ready    <none>   25d   v1.17.0   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-node01,kubernetes.io/os=linux
k8s-node02     Ready    <none>   25d   v1.17.0   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-node02,kubernetes.io/os=linux
k8s-node03     Ready    <none>   25d   v1.17.0   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-node03,kubernetes.io/os=linux
k8s-node04     Ready    <none>   25d   v1.17.0   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-node04,kubernetes.io/os=linux

2、选择一个node节点,打上labels

# kubectl label nodes k8s-node04 disktype=ssd

3、查看node上的标签

# kubectl get nodes k8s-node04 --show-labels

输出如下:

NAME         STATUS   ROLES    AGE   VERSION   LABELS
k8s-node04   Ready    <none>   25d   v1.17.0   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,disktype=ssd,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-node04,kubernetes.io/os=linux

从上输出结果中看出,k8s-node04节点的labels打上了disktype=ssd标签

创建一个调度到指定Node的Pod

此Pod配置文件描述了具有节点选择器(磁盘类型为ssd)的Pod。 这意味着,将在具有disktype = ssd标签的节点上调度Pod。文件:pod-nginx.yaml

apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    env: test
spec:
  containers:
  - name: nginx
    image: nginx
    imagePullPolicy: IfNotPresent
  nodeSelector:
    disktype: ssd

创建Pod

# kubectl apply -f /root/k8s-example/pods/pod-nginx.yaml

查看Pod详情

# kubectl get pods -o wide

从输出结果看,该Pod已被调度到指定的k8s-node04

NAME                                READY   STATUS             RESTARTS   AGE    IP                NODE         NOMINATED NODE   READINESS GATES
nginx                               1/1     Running            0          107s   100.88.217.86     k8s-node04   <none>           <none>

创建一个调度到指定Node的Pod

也可以用nodeName选择调度到指定Node节点上。

apiVersion: v1
kind: Pod
metadata:
  name: nginx
spec:
  nodeName: k8s-node1
  containers:
  - name: nginx
    image: nginx
    imagePullPolicy: IfNotPresent

总结

1、Pod调度到指定Node上有两种方法:

  • node打上labels,通过nodeSelect调度到含有指定lables的Node上
  • nodeName指定Node的名称。


来源:https://www.cnblogs.com/mcsiberiawolf/p/12220871.html
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部