简介

Node是Pod真正运行的主机,可以是物理机也可以是虚拟机。

Node本质上不是Kubernetes来创建的, Kubernetes只是管理Node上的资源。

为了管理Pod,每个Node节点上至少需要运行container runtime(Docker)、kubelet和kube-proxy服务。

node基本操作:kubectl get nodes,查询所有node

从k8s移除node节点

获取节点列表:kubectl get node

确认需要移除的节点上面没有部署我们所需要的资源:kubectl get pod -A -owide |grep "k8s-node02"

设置不可调度(不分配新的资源到该节点上),也就是下线:kubectl cordon k8s-node02

(另外,上线:kubectl uncordon k8s-node02)

检查节点状态,kubectl get nodes

被标记为不可调度节点,节点状态变成:Ready,SchedulingDisabled

驱逐节点上的Pod(先驱赶掉上面的pod,daemonset不会被排出节点,其它的pod自动转移到其它节点;drain意为排出,此时卸载节点,但是没有删除;drain命令会自动把node设置为不可调度,所以可以省略上面执行的cordon命令)

驱逐前,在k8s-node02上

kubectl drain k8s-node02 --delete-local-data --force --ignore-daemonsets

驱逐后,自动转移到k8s-node01上了

节点上pod都被驱逐后,可以直接移除节点:kubectl delete node k8s-node02

这样就平滑移除了一个 k8s 节点

在被删除的node节点中清空集群数据信息【被删除节点执行】:

清空前:

kubeadm reset -f

清空后:

k8s新增node节点

新的node需要安装docker和k8s基础组件,参考:https://www.cnblogs.com/uncleyong/p/15499732.html

在master节点查看集群的token值,其中TTL值默认token的有效期为24小时,当过期之后,该token就不可用了。

kubeadm token list

上面结果为空,说明过期了,可以master上重新生产token并获取hash值:kubeadm token create --print-join-command

kubeadm join 192.168.117.171:6443 --token e3teen.vkisycda6z20glxw --discovery-token-ca-cert-hash sha256:196a26bd21bb2e277fae1cebd247723af113207fb5b11eab25b51d4041714249

生成永久Token:kubeadm token create --ttl 0 --print-join-command

kubeadm token list

获取Token:kubeadm token list | awk -F" " '{print $1}' |tail -n 1

将node节点重新添加到k8s集群中【被添加节点执行】

kubeadm join 192.168.117.171:6443 --token e3teen.vkisycda6z20glxw --discovery-token-ca-cert-hash sha256:196a26bd21bb2e277fae1cebd247723af113207fb5b11eab25b51d4041714249

master查看新节点的是否加入,如果新加节点是NotReady状态,重启kubelet后就变成Ready了(systemctl restart kubelet)

kubectl get nodes【master执行】

kubectl get pods -n kube-system -owide【master执行】

验证:调度到指定节点,nodeName: k8s-node02

curl 172.27.14.193

彻底删除:https://www.cnblogs.com/uncleyong/p/15789371.html

k8s节点简介、移除节点、新增节点的更多相关文章

  1. k8s系列--node(k8s节点介绍,新增节点,移除节点)

    一.简介 Node是Pod真正运行的主机,可以是物理机也可以是虚拟机. Node本质上不是Kubernetes来创建的, Kubernetes只是管理Node上的资源. 为了管理Pod,每个Node节 ...

  2. Kubernetes容器集群管理环境 - Node节点的移除与加入

    一.如何从Kubernetes集群中移除Node比如从集群中移除k8s-node03这个Node节点,做法如下: 1)先在master节点查看Node情况 [root@k8s-master01 ~]# ...

  3. redis节点管理-节点的移除

    原文:http://blog.sina.com.cn/s/blog_53b45c4d0102wg13.html 节点的移除 和节点添加一样,移除节点也有移除主节点,从节点. 1.移除主节点 移除节点使 ...

  4. MongoDB 复制集节点增加移除及节点属性配置

    复制集(replica Set)或者副本集是MongoDB的核心高可用特性之一,它基于主节点的oplog日志持续传送到辅助节点,并重放得以实现主从节点一致.再结合心跳机制,当感知到主节点不可访问或宕机 ...

  5. redis 集群新增节点,slots槽分配,删除节点, [ERR] Calling MIGRATE ERR Syntax error, try CLIENT (LIST | KILL | GET...

    redis reshard 重新分槽(slots) https://github.com/antirez/redis/issues/5029 redis 官方已确认该bug redis 集群重新(re ...

  6. 实验-hadoop新增节点

    关于hadoop新增节点网上的说法都有些差别,自己来实践一把 1.建立一个namenode一个datanode的集群 master:192.168.126.130 slave1:192.168.126 ...

  7. CDH5.16.1集群新增节点

    如果是全新安装集群的话,可以参考<Ubuntu 16.04上搭建CDH5.16.1集群> 下面是集群新增节点步骤: 1.已经存在一个集群,有两个节点 192.168.100.19 hado ...

  8. 解决jQuery ajax动态新增节点无法触发点击事件的问题

    在写ajax加载数据的时候发现,后面添加进来的demo节点元素,失去了之前的点击事件.为什么点击事件失效,我们该怎么去解决呢? 其实最简单的方法就是直接在标签中写onclick="" ...

  9. kubernetes 集群新增node 节点并将应用分配到新增节点

    第一章 1.重新安装一台kubernetes node节点,新增节点:192.168.1.192 网址:https://www.cnblogs.com/zoulixiang/p/9504324.htm ...

随机推荐

  1. Android官方文档翻译 七 2.Adding the Action Bar

    Adding the Action Bar 增加一个Action Bar(工具栏) The action bar is one of the most important design element ...

  2. day 8 求平均数

    fun()函数的功能:计算形参x所指数组中N个数的平均值,(这里全部取浮点数) 并输出,在将大于平均值的数放在形参y所指的数组中,在主函数输出. 效果还不错: 还存在需要优化的分析:其实存到y数组中的 ...

  3. 2022 跳槽涨薪必不可少面试通关宝典 —— css 篇

    生于忧患死于安乐!已经居家隔离 23 天了,解封以后估计就得找工作了,提前准备起来!需要的赶紧收藏起来 一.谈谈你对 BFC 的理解及作用. BFC 是 Block Formatting Contex ...

  4. leetcode 347. 前 K 个高频元素

    问题描述 给定一个非空的整数数组,返回其中出现频率前 k 高的元素.   示例 1: 输入: nums = [1,1,1,2,2,3], k = 2 输出: [1,2] 示例 2: 输入: nums ...

  5. 【刷题-LeetCode】191 Number of 1 Bits

    Number of 1 Bits Write a function that takes an unsigned integer and return the number of '1' bits i ...

  6. Cesium入门7 - Adding Terrain - 添加地形

    Cesium入门7 - Adding Terrain - 添加地形 Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com ...

  7. Ajax_Json用法

    Ajax_Json用法 关于json的服务端代码 //首先在方法里面设置一个响应json数据对象   const data = {       name:'chenxigua'   }​ //因为 s ...

  8. 数组的sort()排序

    1.sort() 方法用于对数组的元素进行排序,并返回数组.默认排序顺序是根据字符串Unicode码点,也就是你不传参进去的话,默认按字符串Unicode码点来排序,而不是按数字大小来排序 2.arr ...

  9. Qt之图片

    widget.h: #ifndef WIDGET_H #define WIDGET_H #include<QPaintEvent> #include <QWidget> #in ...

  10. golang中channel讲解

    1. 无缓冲通道 2. 有缓冲通道 有缓冲通道特点:当channel已经满,在向里面写数据就会阻塞,当channel已经为空,在从里面读数据就会阻塞. 3. 关闭channel package mai ...