K8S之运用节点选择器指定Pod运行的节点

node节点选择器的使用

  • 使用场景
  • 实践
    • 使用nodeName
    • 使用nodeSelector
    • nodeName和nodeSelector混合使用
      • 1、设置了nodeName 和 设置 Node上都不存在的标签。看调度情况
      • 2、设置nodeName 为node1 和 设置 node2上才有的标签。看调度情况
    • 实践总结

使用场景

默认情况,在创建Pod资源的时候,会根据schduler进行节点调度,默认会随机调度一个工作节点。

如果想要Pod 调度到指定节点 或者 调度到一些具有相同特点的node节点,就可以运用Pod中的 nodeName 或者 nodeSelector 字段指定要调度到的Node节点。

实践

使用nodeName

运用nodeName,将Pod运行在指定Node上

创建pod资源文件

vim pod-node-name.yaml
apiVersion: v1
kind: Pod
metadata:
  name: pod-node-name
  namespace: test # 指定命名空间
spec:
  nodeName: k8s-node1 # 指定pod运行的节点名称
  containers:
  - name:  tomcat-java
    image: tomcat:8.5-jre8-alpine
    imagePullPolicy: IfNotPresent
    ports:
    - containerPort: 8080

创建资源

kubectl apply -f pod-node-name.yaml

查看创建的pod调度到哪个节点

kubectl get pods -n test -o wide

看pod的详细信息

kubectl describe pods pod-node-name -n test

使用nodeSelector

运用nodeSelector,指定Pod调度到具有哪些 标签 的Node节点上

看Node节点的标签

kubectl get nodes --show-labels

在这里插入图片描述

指定创建的Pod要调度到具有node-type=worker标签的node上
(ps. 以下操作顺序:先建Pod再给Node打上标签)

创建pod资源文件

vim pod-node-selector.yaml
apiVersion: v1
kind: Pod
metadata:
  name: pod-node-selector
  namespace: test # 指定命名空间
spec:
  nodeSelector:
    node-type: worker
  containers:
  - name:  tomcat-java
    ports:
    - containerPort: 8080
    image: tomcat:8.5-jre8-alpine
    imagePullPolicy: IfNotPresent

创建资源

kubectl apply -f pod-node-selector.yaml

查看创建的pod调度到哪个节点

kubectl get pods -n test -o wide

在这里插入图片描述

看pod的详细信息

kubectl describe pods pod-node-selector -n test

在这里插入图片描述

找不到符合标签的node,pod一直处于创建中

给Node名为 k8s-node2 的节点打个具有 “node-type=worker” 的标签

kubectl label nodes k8s-node2 node-type=worker

Node节点上打标签后,再看 Pod状态 和 调度的节点

kubectl get pods -n test -o wide

在这里插入图片描述
找到符合的node节点后,成功运行

nodeName和nodeSelector混合使用

1、设置了nodeName 和 设置 Node上都不存在的标签。看调度情况

创建pod资源文件

vim pod-node-mix1.yaml
apiVersion: v1
kind: Pod
metadata:
  name: pod-node-mix1
  namespace: test # 指定命名空间
spec:
  nodeName: k8s-node2
  nodeSelector:
    node-type: backup
  containers:
  - name:  tomcat-java
    ports:
    - containerPort: 8080
    image: tomcat:8.5-jre8-alpine
    imagePullPolicy: IfNotPresent

创建资源

kubectl apply -f pod-node-mix1.yaml

再查看pod

kubectl get pods -n test -o wide

在这里插入图片描述

同一个yaml文件里定义Pod资源,如果同时定义了 nodeName 和 nodeSelector,那么条件必须都满足,有一个不满足都会调度失败

再给Node名为 k8s-node2 的节点打上标签

kubectl label nodes k8s-node2 node-type=backup

重建pod

kubectl delete pods pod-node-mix1 -n test

kubectl apply -f pod-node-mix1.yaml

pod就能正常调度到k8s-node2上

kubectl get pods -n test -owide

在这里插入图片描述

2、设置nodeName 为node1 和 设置 node2上才有的标签。看调度情况

创建pod资源文件

vim pod-node-mix2.yaml
apiVersion: v1
kind: Pod
metadata:
  name: pod-node-mix2
  namespace: test # 指定命名空间
spec:
  nodeName: k8s-node1
  nodeSelector:
    node-type: backup
  containers:
  - name:  tomcat-java
    ports:
    - containerPort: 8080
    image: tomcat:8.5-jre8-alpine
    imagePullPolicy: IfNotPresent

创建资源

kubectl apply -f pod-node-mix2.yaml

查看pod调度到哪个节点

kubectl get pods -n test -owide

在这里插入图片描述

看pod的详细信息

kubectl describe pods pod-node-mix2 -n test

在这里插入图片描述

找节点调度时,同时设置了nodeName和nodeSelector,nodeName调度的优先级最高
但Pod状态还是非running,尽量不要同时使用nodeName和nodeSelector

实践总结

  • 同时设置了nodeName和nodeSelector,nodeName优先级最高
  • 如果同时定义了 nodeName 和 nodeSelector,那么条件必须都满足,否则会调度失败
  • 只设置了nodeSelector,当找不到符合标签的node,pod一直处于创建中

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/381220.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络——05Internet结构和ISP

Internet结构和ISP 互连网络结构:网络的网络 端系统通过接入ISPs连接到互连网 住宅、公司和大学的ISPs 接入ISPs相应的必须是互联的 因此任何2个端系统可相互发送分组到对方 导致的“网络的网络”非常复杂 发展和演化是通过经济的和国家的政策来驱动的 问题&…

Windows下搭建Redis Sentinel

下载安装程序 下载Redis关于Windows安装程序,下载地址 下载成功后进行解压,解压如下: 配置redis和sentinel 首先复制三份redis.windows.conf,分别命名为:redis.6379.conf、redis.6380.conf、redis.6381.conf&…

多线程JUC:等待唤醒机制(生产者消费者模式)

👨‍🎓作者简介:一位大四、研0学生,正在努力准备大四暑假的实习 🌌上期文章:多线程&JUC:解决线程安全问题——synchronized同步代码块、Lock锁 📚订阅专栏:多线程&am…

【C语言】深入理解指针

目录 1.字符指针 2.指针数组 3.数组指针 4.数组传参与指针传参 一维数组传参 二维数组传参 一级指针传参 二级指针传参 5.函数指针 6.函数指针数组 7.指向函数指针数组的指针(了解即可) 8.回调函数 回调函数的应用:库函数qsort …

Codeforces Round 923 (Div. 3) E. Klever Permutation (Java)

比赛链接:Round 923 (Div. 3) EE题传送门:E. Klever Permutation 题目:E. Klever Permutation 样例 #1 样例输入 #1 5 2 2 3 2 10 4 13 4 7 4样例输出 #1 2 1 1 3 2 1 8 4 10 2 7 5 9 3 6 4 10 1 13 5 9 2 12 6 8 3 11 7 1 6 3 7 2 5 4分…

【06】C++ 模板初阶

文章目录 🌈 Ⅰ 泛型编程🌈 Ⅱ 函数模板1. 函数模板概念2. 函数模板格式 🌈 Ⅰ 泛型编程 1. 泛型编程引入 假设当前要实现交换两个变量的功能,那么就得根据实参的数据类型来对该函数进行重载。重载的函数只是数据类型不同而已&a…

逐行拆解Guava限流器RateLimiter

逐行拆解Guava限流器RateLimiter 常见限流算法 计数器法 设置一个时间窗口内允许的最大请求量,如果当前窗口请求数超过这个设定数量,则拒绝该窗口内之后的请求。 关键词:时间窗口,计数器。 举个例子,我们设置1秒钟…

解决“使用Edge浏览器每次鼠标点击会出现一个黑色边框”的问题

目录 一 问题描述 二 解决方案 三 方案来源 四 参考资料 & AI工具 一 问题描述 为了方便进行收藏夹同步,开始从Chrome浏览器切换到Edge浏览器。在使用Edge浏览器过程中发现“每次鼠标点击会出现一个黑色边框”(效果如下图所示)&#…

基于物联网的实时数据分析(简单介绍)

在当今这个信息化、数字化飞速发展的时代,物联网(Internet of Things, IoT)和实时数据分析成为了技术革新的两大支柱。对于刚入行的新手来说,理解这两个概念及其相互作用不仅是迈入这一领域的第一步,更是掌握未来技术趋…

Android 粒子喷泉动效

一、前言: 在学习open gl es实现动效的时候,打算回顾了一下用普通的2D坐标系实现粒子效果和 open gl 3d 坐标系的区别,以及难易程度,因此本篇以Canvas 2D坐标系实现了一个简单的demo。 粒子动效原理: 粒子动效本质上…

Springboot 整合 Elasticsearch(二):使用HTTP请求来操作ES

📁前情提要:Springboot整合Elasticsearch(一):Linux下安装 Elasticsearch 8.x 目录 一、使用 elasticsearch-head 插件连接 1、下载压缩包 2、在 chrome 浏览器中添加扩展程序 3、修改IP地址,点击连接 …

Excel+VBA处理高斯光束

文章目录 1 图片导入与裁剪2 获取图片数据3 数据拟合 1 图片导入与裁剪 插入图片没什么好说的,新建Excel,【插入】->【图片】。 由于图像比较大,所以要对数据进行截取,选中图片之后,点击选项卡右端的【图片格式】…

Postgresql 的编译安装与包管理安装, 全发行版 Linux 通用

博客原文 文章目录 实验环境信息编译安装获取安装包环境依赖编译安装安装 contrib 下工具代码 创建用户创建数据目录设置开机自启动启动数据库常用运维操作 apt 安装更新源安装 postgresql开机自启修改配置修改密码 实验环境信息 Ubuntu 20.04Postgre 16.1 编译安装 获取安装…

HiveSQL——不使用union all的情况下进行列转行

参考文章: HiveSql一天一个小技巧:如何不使用union all 进行列转行_不 union all-CSDN博客文章浏览阅读881次,点赞5次,收藏10次。本文给出一种不使用传统UNION ALL方法进行 行转列的方法,其中方法一采用了concat_wsposexplode()方…

[经验] 喉咙沙哑的原因及应对方法是什么 #学习方法#其他#媒体

喉咙沙哑的原因及应对方法是什么 生活中,喉咙不舒服是很常见的情况,尤其是喉咙沙哑,让人感到特别难受,影响睡眠和生活质量。那么喉咙沙哑怎么办呢?接下来我会分享一些简单易行的方法,帮助你缓解这种不适感…

搭建yum仓库服务器

安装 1.安装linux 1.1安装依赖 yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel 1.2下载 cd /opt/nginx wget http://nginx.org/download/nginx-1.25.3.tar.gz 1.3解压 tar -xvf nginx-1.25.3.tar.gz 1.4配置 cd nginx-1.25.3 ./configure --pre…

【Larry】英语学习笔记语法篇——从句=连词+简单句

目录 三、从句连词简单句 1、必须有连词 主从结构 疑问词的词性 2、名词性从句 同位语从句 形式主语 形式宾语 that的省略 3、形容词性从句(上) 关系代词 关系词的作用 介词前置问题 4、形容词性从句(中) 定语关系…

程序的内存模型

内存分区模型 C程序在执行时,将内存大方向分为4个区域 1.代码区:存放函数体的二进制代码,有操作系统进行管理 2.全局区:存放全局变量和静态变量以及常量 3.栈区:由编译器自动分配及释放,存放函数的参数…

开源微服务平台框架的特点是什么?

借助什么平台的力量,可以让企业实现高效率的流程化办公?低代码技术平台是近些年来较为流行的平台产品,可以帮助很多行业进入流程化办公新时代,做好数据管理工作,从而提升企业市场竞争力。流辰信息专业研发低代码技术平…

InternLM大模型实战-2.浦语大模型趣味demo

文章目录 前言笔记正文3个Demo的简要介绍InternLM模型简介Lagent介绍书生灵笔多模态大模型 Demo动手实践模型的下载更多 前言 本文是对于InternLM全链路开源体系系列课程的学习笔记。视频教程:【轻松玩转书生浦语大模型趣味Demo】 https://www.bilibili.com/video/…