k8s教程(pod篇)-定向调度

article/2025/6/21 5:52:15

文章目录

  • 01 引言
  • 02 举例
    • Step1:给Node打上标签
    • Step2:Pod指定NodeSelector
    • Step3:验证
  • 03 预定义的标签
  • 04 文末

01 引言

声明:本文为《Kubernetes权威指南:从Docker到Kubernetes实践全接触(第5版)》的读书笔记

在前面的博客《k8s教程(12)-pod 全自动调度》,讲解了DeploymentRC的全自动调度带概念及使用例子。

Kubernetes Master上的Scheduler服务(kube-scheduler进程)负责实现Pod 的调度,整个调度过程通过执行一系列复杂的算法,最终为每个Pod都计算出一个最佳的目标节点,这一过程是自动完成的,通常我们无法知道Pod最终会被调度到哪个节点上

在实际情况下,也可能需要将Pod调度到指定的一些Node上,可以通过Node的标签(Label)和PodnodeSelector属性相匹配,来达到上述目的。也就是本文要讲解的NodeSelector定向调度

02 举例

Step1:给Node打上标签

如果要实现定向调度,首先的第一步就是要为Node节点搭上标签(Label),可以使用kubectl label命令:

kubectl label nodes <node-name><label-key>=<label-value>

例如这里为k8s-node-1节点打上一个zone=north标签,表明它是“北方”的一个节点:
在这里插入图片描述

Step2:Pod指定NodeSelector

然后,在Pod的定义中加上nodeSelector的设置,以redis-master- controller.yaml为例:
在这里插入图片描述

Step3:验证

运行kubectl create -f命令创建Podscheduler就会将该Pod调度到拥有 “zone=north” 标签的Node上。

使用kubectl get pods-o wide命令可以验证Pod所在的Node
在这里插入图片描述

需要注意的是,如果我们指定了PodnodeSelector条件,且在集群中不存在包含相应标签的Node,则即使在集群中还有其他可供使用的Node这个Pod也无法被成功调度

03 预定义的标签

除了用户可以自行给Node添加标签,Kubernetes也会给Node预定义一些标签,包括:

  • kubernetes.io/hostname;
  • beta.kubernetes.io/os(从1.14版本开始更新为稳定版,到1.18版本删除);
  • beta.kubernetes.io/arch(从1.14版本开始更新为稳定版,到1.18版本删除);
  • kubernetes.io/os(从1.14版本开始启用);
  • kubernetes.io/arch(从1.14版本开始启用)。

本文不对此进行详述。

04 文末

本文主要讲解了Pod使用NodeSelector来进行定向调度的概念及使用案例,同时也简单介绍了一些预定义的标签。希望能帮助到大家,谢谢大家的阅读,本文完!


http://chatgpt.dhexx.cn/article/j1ln8HB4.shtml

相关文章

k8s教程01(k8s环境配置及私有仓库搭建)

Infrastructure as a Service&#xff08;laas&#xff0c;基础架构作为服务&#xff09; 阿里云 platform as a service&#xff08;Paas&#xff0c;平台作为服务&#xff09; 新浪云 Software as a Service&#xff08;Saas&#xff0c;软件作为服务&#xff09; Office 365…

超级详细的k8s入门教程

简介 kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具。 这个工具能通过两条指令完成一个kubernetes集群的部署&#xff1a; 创建一个 Master 节点&#xff1a;kubeadm init将一个 Node 节点加入到当前集群中&#xff1a;ubeadm join <Master节点的IP和端口…

linux部署k8s教程

一.安装k8s 1.关闭防火墙 systemctl stop firewalld 2.关闭swap swapoff -a 3.更改hosts vim /etc/hosts 10.101.116.3 k8s-master 10.101.116.4 k9s-node1 4.安装docker yum -y install docker-ce-18.06.1.ce-3.el7 5.配置k8s来源 cat > /etc/yum.repos.d/kubernet…

K8s—使用教程

目录 什么是Kubernetes&#xff1f; Kubernetes的主要对象 Kubernetes的特征 Kubernetes体系结构 主节点&#xff08;控制平面&#xff09; 从节点&#xff08;工人节点&#xff09; Linux安装Kubernetes 什么是Kubernetes&#xff1f; Kubernetes也被称为” k8s”。这…

尚硅谷Kubernetes教程(K8s入门到精通) 01

PAAS 平台即服务 用户下单,云厂商,派出运维 构建 自动化运维工具-自动环境创建 docker公司 自动构建运行环境 容器的集群化 资源管理器 分布式系统内核 Twitter 改用k8s 退出历史舞台 kubernetes 背靠 谷歌 功能全面 稳定 go 语言(解释性 轻量级 ) 开源 弹性伸缩 负…

k8s教程(Volume篇)-PV详解

文章目录 01 引言02 PV详解2.1 示例配置详解2.1.1 存储容量 (Capacity)2.1.2 存储卷模式 (Volume Modes)2.1.3 访问模式 (Access Modes)2.1.4 存储类别(Class)2.1.5 回收策略 (Reclaim Policy)2.1.6 挂载选项 (Mount Options)2.1.6 节点亲和性 (Node Affinity) 03 文末 01 引言…

K8s 初学者入门教程

Kubernetes 简称为 K8s 文章目录 写在前面1. 什么是 K8s1.1 K8s 解决了什么问题&#xff1f;1.2 容器编排工具提供了哪些特性? 2. K8s 组件2.1 Node & Pod2.2 Service & Ingress2.3 ConfigMap & Secret2.4 Volumes2.5 Deployment & StatefulSet 3.总结参考 写…

K8s集群搭建教程

学习并总结一下使用三台虚拟机搭建一个kubernetes集群的过程。 目录 一、环境规划二、环境准备2.1 搭建流程概述&#xff1a;2.2 安装环境准备2.2.1 升级系统内核2.2.2 设置主机名和hosts本地解析2.2.3 关闭防火墙和SELinux2.2.4 时间同步2.2.5 关闭 swap 分区2.2.6 将桥接的IP…

k8s教程(Volume篇)-总结

文章目录 01 引言02 内容整理2.1 概念2.2 PV2.3 PVC2.4 StorageClass2.5 CSI 03 文末 01 引言 至此&#xff0c;volume的相关知识已经讲解完了&#xff0c;下面是相关文章的详情总结&#xff1a; 《k8s教程&#xff08;Volume篇&#xff09;-k8s存储机制概述》《k8s教程&…

【K8S教程分享】Kubernetes K8S高级视频教程

Kubernetes K8S高级视频教程&#xff0c;目前的云计算(PaaS),事实上已经以K8S为标准建立平台&#xff0c;各大开源项目也都依据K8S对接进行开发或二次开发&#xff0c;所以K8S是目前云计算领域的必备技能&#xff0c;当能结合openstackk8s双平台者的运维、开发、使用者&#xf…

k8s教程(基础篇)-安装与配置概述

文章目录 01 系统要求02 安装概述03 私有镜像库配置与升级3.1 私有镜像库配置3.2 升级 04 CRI&#xff08;容器运行时接口&#xff09;详解 4.1 CRI 概述 4.2 CRI 的主要组件 4.3 Pod 和容器的生命周期管理 4.4 面向容器级别的设计思路 4.5 尝试使用新的 Docker-CRI 来创建容器…

K8S入门教程

目录 1.Kubernetes概述 1.1 Kubernetes介绍 1.2 基本架构与常用术语 2.Kubernetes集群 2.1 环境准备与规划 2.2 Master安装 2.3 Node1安装 2.4 Node2安装 2.5 健康检查与示例测试 1.Kubernetes概述 1.1 Kubernetes介绍 1.1.1 Kubernetes是什么及作用 Kubernetes(K8S)是Google在…

k8s教程(基础篇)-入门及案例

文章目录 1. 了解 Kubernetes 1.1 Kubernetes是什么 1.2 Kubernetes的基本知识 1.2.1 Service 1.2.2 Pod 2. 为什么要用 Kubernetes 3. 从一个简单的例子开始 3.1 启动 MySQL 服务 3.1.1 Deployment定义文件 3.1.2 service定义文件 3.2 启动 Tomcat应用 3.2.1 Deployment定义文…

k8s搭建(超详细,保姆级教程)

1、简介 这里就不赘述&#xff0c;想要了解的朋友直接去这里深入了解什么是K8S。 2、环境要求 2台以上机器&#xff0c;操作系统 CentOS7.7-64位系统硬件配置&#xff1a;2GB或更多RAM&#xff0c;2个CPU或更多CPU&#xff0c;硬盘30GB或更多集群中所有机器之间网络互通可以…

k8s教程----零基础快速入门

k8s详解教程----零基础快速入门 前言&#xff1a; Kubernetes&#xff08;k8s&#xff09;作为云原生的核心平台&#xff0c;吸引了越来越多的运维、开发、测试以及其他技术员去了解学习。随着行业越来越内卷&#xff0c;k8s已经被广泛使用&#xff0c;作为一名运维人员&#…

K8S使用教程(详细)

Kubernetes详细教程 1. Kubernetes介绍 1.1 应用部署方式演变 在部署应用程序的方式上&#xff0c;主要经历了三个时代&#xff1a; 传统部署&#xff1a;互联网早期&#xff0c;会直接将应用程序部署在物理机上 优点&#xff1a;简单&#xff0c;不需要其它技术的参与 缺点…

零基础学kubernetes(k8s)必看教程,带你10分钟快速实战入门k8s

一、前言 作为一个工作十余年&#xff0c;拥有比较丰富的计算机网络运维、主机运维、云计算平台运维、自动化运维开发经验的老鸟&#xff0c;我来说说我当初刚接触Kubernetes时的一些感受以及学习技巧。 刚开始学习k8s时&#xff0c;我觉得挺难的&#xff0c;一头雾水&#x…

python input函数换行_python input函数换行_python_input函数

Python raw_input() 函数 Python内置函数 python raw_input()用来获取控制台的输入。 raw_input()将所有输入作为字符串看待,返回字符串类型。注意:input()和 raw_input()这两个函 Python input和print函数 - 箬笠蓑衣 258x256 - 5KB - PNG python row函数_row函数_python row_…

Python基础之input函数和eval函数

Python基础之&#xff08;二&#xff09; 一、 input()函数-数据输入 input()函数的功能&#xff1a;显示用户输入的值 input()函数可以包含一些提示性文字 通过使用input()函数&#xff0c;可以使用户主动输入的内容变成程序中的字符串变量的值 <字符串变量> input(&l…

函数input()讲解

目录 上次我们讲解了函数print&#xff0c;今天我们来讲它的“好兄弟”input&#xff01; 讲解 1.input与变量 2.input与提示语 3.input与print 例子 上次我们讲解了函数print&#xff0c;今天我们来讲它的“好兄弟”input&#xff01; 讲解 1.input与变量 input在pyth…