首页 > 编程语言 >K8S 中的 Node 管理

K8S 中的 Node 管理

时间:2024-09-05 19:22:59浏览次数:13  
标签:Node kubectl k8s 管理 调度 node1 Pod K8S

1.Node的扩缩容

在实际生产系统中,经常遇到服务器容量不足的情况,这时就需要购买新的服务器,对应用系统进行水平扩展以实现扩容。

在k8s中,对一个新的node的加入非常简单,只需要在node节点上安装Docker、kubelet和kube-proxy服务,然后将kubelet和kube-proxy的启动参数中的master url指定为当前Kubernetes集群master的地址,然后启动服务即可。基于kubelet的自动注册机制,新的Node会自动加入现有的Kubernetes集群中。

Kubernetes master在接受了新Node的注册后,会自动将其纳入当前集群的调度范围内,在之后创建容器时,就可以向新的Node进行调度了。删除Node节点的代码为:kubectl delete node k8s-node1。

2.Node的隔离与恢复

在硬件升级、硬件维护的情况下,需要将某些Node进行隔离,脱离k8s的调度范围。k8s提供了一套机制,既可以将Node纳入调度范围,也可以将Node脱离调度范围。

通过配置文件实现,创建配置文件unschedule_node.yml,内容如下。

apiVersion: v1

kind: Node

metadata:

  name: k8s-node1

  labels:

    namne: k8s-node1

spec:

  unschedulable: true

然后执行该配置文件,即可将指定的Node脱离调度范围,代码如下。

kubectl replace -f unschedule_node.yml

3.更新资源对象的Label

Label作为用户可灵活定义的对象属性,在已创建的对象上仍然可以通过kubectl label命令对其进行增删改等操作。

给一个Node添加一个label。

kubectl label node k8s-node1 role=backend

要想删除Label,只需要在命令行最后指定Label的key名,并加一个减号即可。

kubectl label node k8s-node1 role-

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

可能需要将Pod调度到一个指定的Node上,此时,可以通过Node的标签(Label)和Pod的nodeSelector属性相匹配,来达到上述目的。

使用kubectl label给Node打标签的用法如下。

kubectl label nodes  =

下面示例为k8s-node1打上一个project=gcxt的标签。

kubectl label nodes k8s-node1 project=gcxt

在Pod中加入nodeSelector定义,示例如下。

apiVersion: v1

kind: ReplicationController

metadata:

  name: memcached-gcxt

运行kubectl create -f命令创建Pod,scheduler就会将该Pod调度到拥有project=gcxt标签的Node上去。

这种基于Node标签的调度方式灵活性很高,比如可以把一组Node分别贴上“开发环境”“测试环境”“生产环境”这3组标签中的一种,此时一个Kubernetes集群就承载了3个环境,大大提高了开发效率。

需要注意的是,如果指定了Pod的nodeSelector条件,且集群中不存在包含相应标签的Node时,即使还有其他可供调度的Node,这个Pod也最终会调度失败。

标签:Node,kubectl,k8s,管理,调度,node1,Pod,K8S
From: https://blog.51cto.com/key3feng/11930063

相关文章

  • k8s介绍
    ⼀、编排分类单机容器编排:docker-compose容器集群编排:dockerswarm、mesos+marathon、kubernetes应⽤编排:ansible(模块,剧本,⻆⾊)⼆、系统管理进化史1.传统部署时代早期,各个组织是在物理服务器上运⾏应⽤程序。由于⽆法限制在物理服务器中运⾏的应⽤程序资源使⽤,......
  • jsp毕业生就业管理系统的设计与实现n74p5
    jsp毕业生就业管理系统的设计与实现n74p5本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表项目功能毕业生,企业,教师,简历信息,招聘信息,应聘信息,在线交流,在线回复,就业统计开题报告内容一、项目背景与意......
  • SSM的体育场地预订管理系统
    感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人2025最新毕业设计项目推荐-SSM篇2025最新毕业设计项目推荐-SpringBoot篇2025最新毕业设计项目推荐-小程序、uniapp篇-CSDN博客​体育场地预订管理系统【部署+......
  • SSM的小区物业管理系统
    感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人2025最新毕业设计项目推荐-SSM篇2025最新毕业设计项目推荐-SpringBoot篇2025最新毕业设计项目推荐-小程序、uniapp篇-CSDN博客​小区物业信息管理系统【部署+讲......
  • SSM的实验室资源预约管理系统
    感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人2025最新毕业设计项目推荐-SSM篇2025最新毕业设计项目推荐-SpringBoot篇2025最新毕业设计项目推荐-小程序、uniapp篇-CSDN博客​实验室资源预约管理系统【部署+......
  • 基于SpringBoot的宿舍管理系统
    文章目录项目介绍主要功能截图:部分代码展示设计总结项目获取方式......
  • 【SpringBoot】使用Nacos服务注册发现与配置管理
    前提:需要提前部署好nacos服务,这里可以参考我的文章:Windows下Nacos安装与配置0.版本信息SpringBoot3.2.8SpringCloud2023.0.1SpringCloudalibaba2023.0.1.0nacos2.3.2本地安装的nacos2.3.0       SpringBoot、SpringCloud、SpringCloudalibaba的版本对应可......
  • 项目经理的时间管理秘籍,你真的了解吗?
    前言深圳大学为何能与985并肩,却尚未踏入“双一流”行列?在高手如云的中国高等教育界,深圳大学如同一匹黑马,迅速崛起,其综合实力和国际影响力已不逊色于部分985高校。然而,令人好奇的是,这样一所实力派大学,为何至今还未被评为“双一流”高校呢?1、实力不容小觑深圳大学,这所年轻的学府......
  • Vue3 中的状态管理:Vuex vs Pinia 深度分析
    Vue3中的状态管理:VuexvsPinia深度分析在现代前端开发中,状态管理是一个至关重要的方面。尤其是在大型应用中,如何高效、清晰地管理状态不仅影响着代码的可读性和可维护性,还对应用的性能有直接的影响。在Vue3中,Vuex和Pinia是两种主要的状态管理库,这两者各有不同的设......
  • 工单管理系统V1.0.5
    在线工单管理系统,支持多工程师分配、知识库、工单评价、自定义字段、工单通知(短信&邮件)、自定义产品或服务等功能。提供全部无加密服务端源码和前端源代码,独立部署,不受限制。V1.0.5优化功能和修复已知问题修复工单详情页的基本信息字段可能无值的BUG优化前后台添加工单时的字段值......