K8S 集群节点扩容

news2024/11/25 21:43:43

环境说明:

主机名IP地址CPU/内存角色K8S版本Docker版本
k8s231192.168.99.2312C4Gmaster1.23.1720.10.24
k8s232192.168.99.2322C4Gwoker1.23.1720.10.24
k8s233(需上线)192.168.99.2332C4Gwoker1.23.1720.10.24

        当现有集群中的节点资源不够用,此时就需要给集群扩容添加机器

1. 上线节点环境准备

1.1 确定上线节点与当前集群网段一致,且可互通

        使用 ping 命令检查网络是否互通

1.2 配置hosts解析

cat >> /etc/hosts <<EOF
192.168.99.250 linux250
192.168.99.251 linux251
192.168.99.252 linux252
EOF

 1.3 关闭 swap 分区

#临时关闭
swapoff -a && sysctl -w vm.swappiness=0
#基于配置文件永久关闭
sed -ri '/^[^#]*swap/s@^@#@' /etc/fstab

1.4 确保各个节点MAC地址或Product_uuid唯一

ifconfig  eth0  | grep ether | awk '{print $2}'
cat /sys/class/dmi/id/product_uuid 

温馨提示:

        一般来讲,硬件设备会拥有唯一的地址,但是有些虚拟机的地址可能会重复。

        Kubernetes使用这些值来唯一确定集群中的节点。 如果这些值在每个节点上不唯一,可能会导致安装失败。

1.5 修改Linux内核参数调优

cat > /etc/sysctl.d/k8s.conf <<'EOF'
#允许 Linux 系统作为路由器转发 IPv4 数据包。当设置为 1 时,表示启用 IP 数据包转发功能。
net.ipv4.ip_forward = 1

#启用桥接设备在通过 iptables 进行网络过滤时的调用。
net.bridge.bridge-nf-call-iptables = 1

#启用桥接设备在通过 ip6tables 进行 IPv6 网络过滤时的调用。
net.bridge.bridge-nf-call-ip6tables = 1

#允许 Linux 在不重新引起操作的情况下卸载正在使用的挂载点。
fs.may_detach_mounts = 1

#设置内存过量分配策略。当设置为 1 时,Linux 将允许分配超过物理内存总量的虚拟内存。
vm.overcommit_memory=1

#当内存耗尽(OOM,Out-Of-Memory)时,是否触发内核崩溃。设置为 0 表示禁用这个行为。
vm.panic_on_oom=0

#设置用户可以监视的文件数量的最大值,对于文件系统监视服务很重要,比如 inotify。
fs.inotify.max_user_watches=89100

#设置系统中打开的文件描述符的最大数量。
fs.file-max=52706963

#设置系统中打开文件描述符的最大数量,和 fs.file-max 有类似的作用。
fs.nr_open=52706963

#设置连接跟踪表的最大条目数量,用于管理网络连接状态。
net.netfilter.nf_conntrack_max=2310720

#设置 TCP keepalive 超时时间(单位:秒),用于检测空闲连接是否仍然可用。
net.ipv4.tcp_keepalive_time = 600

#在认定连接失效之前,发送多少个 TCP keepalive 探测包。
net.ipv4.tcp_keepalive_probes = 3

#两次 TCP keepalive 探测之间的时间间隔(单位:秒)。
net.ipv4.tcp_keepalive_intvl =15

#设置 TIME-WAIT 状态的最大连接数。
net.ipv4.tcp_max_tw_buckets = 36000

#允许重新使用 TIME-WAIT 状态的 TCP 连接。
net.ipv4.tcp_tw_reuse = 1

#允许系统保持的最大无主 TCP 连接数。
net.ipv4.tcp_max_orphans = 327680

#设置在关闭套接字时内核应该进行多少次重试。
net.ipv4.tcp_orphan_retries = 3

#启用 TCP SYN cookies,用于防范 SYN 攻击。
net.ipv4.tcp_syncookies = 1

#设置 TCP SYN 队列的最大长度。
net.ipv4.tcp_max_syn_backlog = 16384

#设置 IPv4 连接跟踪表的最大条目数量。
net.ipv4.ip_conntrack_max = 65536

#控制着系统允许的未完成的 TCP 握手队列的最大长度
net.ipv4.tcp_max_syn_backlog = 16384

#禁用 TCP 时间戳,可能用于防范某些攻击。
net.ipv4.tcp_timestamps = 0

#设置系统级别的最大并发连接数,影响 TCP 和 UDP 套接字的 listen 函数的 backlog 参数的默认值。
net.core.somaxconn = 16384
EOF

1.6 加载文件

sysctl --system

 1.8 禁用SELinux

sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config 
grep ^SELINUX= /etc/selinux/config

 1.9 修改cgroup的管理进程systemd

阿里云镜像加速

harbor私有仓库解析

修改cgroup的管理进程systemd

cat > /etc/docker/daemon.json <<EOF
{
"registry-mirrors": ["https://0pcinxc2.mirror.aliyuncs.com"],
"insecure-registries": ["harbor253.bihuang.com","192.168.99.253"],
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF

#重启docker
systemctl restart docker

#查看是否修改
[root@linux250 ~]# docker info | grep "Cgroup"
 Cgroup Driver: systemd
 Cgroup Version: 1

温馨提示:

        如果不修改cgroup的管理驱动为systemd,则默认值为cgroupfs,在初始化 master 节点时会失败

2. 安装必要组件

2.1 安装 docker 环境

二进制部署 docker_docker 二进制包-CSDN博客

2.2 配置K8S软件源

cat  > /etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
repo_gpgcheck=0
EOF

2.3 安装 kubeadm,kubectl,kubelet 软件包

[root@k8s233 ~]# yum -y install kubeadm-1.23.17-0 kubelet-1.23.17-0 kubectl-1.23.17-0 

2.4 启动kubelet服务

        若服务启动失败时正常现象,其会自动重启,初始化集群后恢复

systemctl enable --now kubelet
systemctl status kubelet

3. 在 master 节点创建 token

3.1 创建一个永不过期的 token,并打印加入集群命令

[root@k8s231 /app/manifests/sts]# kubeadm token create --print-join-command bihuan.aaaaabbbbbcccccd --ttl 0

#指定时间 0 为永不过期
--ttl 

#生成的值
kubeadm join 192.168.8.246:6443 --token bihuan.aaaaabbbbbcccccd --discovery-token-ca-cert-hash sha256:23e378324af6e61e27df5af6a8eb56b90f1d560b40c591ea3b7d06902a0d3b8f 

注意:

        --print-join-command bihuan.aaaaabbbbbcccccd 

        这个字段的格式为 6个字符.16个字符

        可根据自己需求自定义

3.2 查看现有的token

[root@k8s231 /app/manifests/sts]# kubeadm token list
TOKEN                     TTL         EXPIRES   USAGES                   DESCRIPTION                                                EXTRA GROUPS
bihuan.aaaaabbbbbcccccd   <forever>   <never>   authentication,signing   <none>                                                     system:bootstrappers:kubeadm:default-node-token

4. worker 节点加入集群

#将刚刚生成的值,在需要加入集群的节点上执行
[root@k8s233 ~]# kubeadm join 192.168.8.246:6443 --token bihuan.aaaaabbbbbcccccd --discovery-token-ca-cert-hash sha256:23e378324af6e61e27df5af6a8eb56b90f1d560b40c591ea3b7d06902a0d3b8f

5. 查看节点

[root@k8s231 /app/manifests/sts]# 
[root@k8s231 /app/manifests/sts]# kubectl get nodes
NAME     STATUS   ROLES                  AGE   VERSION
k8s231   Ready    control-plane,master   59d   v1.23.17
k8s232   Ready    <none>                 59d   v1.23.17
k8s233   Ready    <none>                 40s   v1.23.17

6. 删除 token 

等所有节点都加入集群后,删除创建的永久token

#查看现有token
[root@k8s231 /app/manifests/sts]# kubeadm token list
TOKEN                     TTL         EXPIRES   USAGES                   DESCRIPTION                                                EXTRA GROUPS
bihuan.aaaaabbbbbcccccd   <forever>   <never>   authentication,signing   <none>                                                     system:bootstrappers:kubeadm:default-node-token

#删除token
[root@k8s231.oldboyedu.com ~]# kubeadm token delete bihuang

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

kinect2.0问题:四、DiscreteGestureBasics-WPF更换自己的gbd文件后报错

1、报错状况 “System.InvalidOperationException”类型的异常在 Microsoft.Kinect.VisualGestureBuilder.dll 中发生&#xff0c;但未在用户代码中进行处理其他信息: This API has returned an exception from an HRESULT: 0x800040052、解决方案 原设置 改成下图就不报错了…

【面试题】信息系统安全运维要做什么

信息系统安全运维是确保信息系统稳定、可靠、安全运行的一系列活动和措施。 其主要包括以下几个方面&#xff1a; 1.系统监控&#xff1a; 实时监测信息系统的运行状态&#xff0c;如服务器的性能指标、网络流量、应用程序的运行情况等。通过监控工具&#xff0c;及时发现系统…

1966 ssm 流浪猫领养网站系统开发mysql数据库web结构java编程计算机网页源码eclipse项目

一、源码特点 ssm 流浪猫领养网站系统是一套完善的信息系统&#xff0c;结合springMVC框架完成本系统&#xff0c;对理解JSP java编程开发语言有帮助系统采用SSM框架&#xff08;MVC模式开发&#xff09;&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/…

产品经理系列1—如何实现一个电商系统

具体笔记如下&#xff0c;主要按获客—找货—下单—售后四个部分进行模块拆解

机器学习原理和代码实现专辑

1. 往期文章推荐 1.【机器学习】图神经网络(NRI)模型原理和运动轨迹预测代码实现 2. 【机器学习】基于Gumbel-Sinkhorn网络的“潜在排列问题”求解 3. 【机器学习】基于Gumbel Top-k松弛技术的图形采样 4. 【机器学习】基于Softmax松弛技术的离散数据采样 5. 【机器学习】正则…

MySQL高级-MVCC-原理分析(RR级别)

文章目录 1、RR隔离级别下&#xff0c;仅在事务中第一次执行快照读时生成ReadView&#xff0c;后续复用该ReadView2、总结 1、RR隔离级别下&#xff0c;仅在事务中第一次执行快照读时生成ReadView&#xff0c;后续复用该ReadView 而RR 是可重复读&#xff0c;在一个事务中&…

INFINI Easysearch尝鲜Hands on

INFINI Easysearch 是一个分布式的近实时搜索与分析引擎&#xff0c;核心引擎基于开源的 Apache Lucene。Easysearch 的目标是提供一个自主可控的轻量级的 Elasticsearch 可替代版本&#xff0c;并继续完善和支持更多的企业级功能。 与 Elasticsearch 相比&#xff0c;Easysear…

从一到无穷大 #30 从阿里云盘古的屠龙之术看使用blob storage作为统一存储层的优势

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 本作品 (李兆龙 博文, 由 李兆龙 创作)&#xff0c;由 李兆龙 确认&#xff0c;转载请注明版权。 文章目录 引言盘古演进过程盘古2.0 第一阶段Append-Only File System统一持久化层与ClientClie…

【操作系统期末速成】 EP01 | 学习笔记(基于五道口一只鸭)

文章目录 一、前言&#x1f680;&#x1f680;&#x1f680;二、正文&#xff1a;☀️☀️☀️1.1 考点一&#xff1a;操作系统的概率及特征 三、总结&#xff1a;&#x1f353;&#x1f353;&#x1f353; 一、前言&#x1f680;&#x1f680;&#x1f680; ☀️ 回报不在行动…

使用Python构建文档替换工具,轻松解放双手!

引言&#xff1a; 在处理大量文档时&#xff0c;逐个替换关键词是一项耗时且繁琐的任务。但是&#xff0c;通过使用Python和wxPython&#xff0c;我们可以轻松构建一个文档替换工具&#xff0c;帮助我们快速完成这项任务。本文将详细介绍这段代码的功能和实现原理&#xff0c;以…

【活动感想】筑梦之旅·AI共创工坊 workshop 会议回顾

目录 &#x1f30a;1. 会议详情 &#x1f30a;2. 会议回顾 &#x1f30d;2.1 主持人开场 &#x1f30d;2.2 元甲-小当家 AI 驱动的创意儿童营养早餐料理机&今天吃什么App &#x1f30d;2.3 Steven- A l 心理疗愈认知 &#x1f30d;2.4 伯棠-诸子百家(xExperts)-多智能…

2.2 Python数据类型详解

第二节&#xff1a;Python数据类型详解 Python作为一种动态类型语言&#xff0c;支持多种数据类型&#xff0c;每种数据类型都有其特定的特点和用途。本章将详细介绍Python中常见的数据类型及其特性&#xff0c;以及如何使用这些数据类型进行编程。 2.2.1 整数 (int) 整数是…

D-MAX纠偏软件Fife MAX Terminal软件MAX-Oi软件

D-MAX纠偏软件Fife MAX Terminal软件MAX-Oi软件

74HC595 驱动代码 单线串口输出转并输出

void _74HC595IOIinit() {GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);GPIO_InitStructure.GPIO_Pin RCLK_Pin ;GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode GPIO_Mode_Out_PP; //复用推挽…

告别模糊时代,扫描全能王带来清晰世界

模糊碑文引发的思考 上个月中旬去洛阳拜访了著名的龙门石窟&#xff0c;本就对碑文和文字图画感兴趣的我们&#xff0c;准备好好欣赏一下龙门石窟的历史文化古迹。到了地方之后&#xff0c;我发现石窟的高度和宽度远远超出了想象&#xff0c;正因如此&#xff0c;拍出来的文字…

知识不成体系?这篇Mysql数据库将成为你的解忧杂货店!(子查询)

欢迎来到一夜看尽长安花 博客&#xff0c;您的点赞和收藏是我持续发文的动力 对于文章中出现的任何错误请大家批评指出&#xff0c;一定及时修改。有任何想要讨论的问题可联系我&#xff1a;3329759426qq.com 。发布文章的风格因专栏而异&#xff0c;均自成体系&#xff0c;不足…

Sora DiT图解【文生视频】

“在古老的迪萨罗斯大陆&#xff0c;曾经住着一位传奇人物&#xff0c;名叫索拉&#xff08;Sora&#xff09;。这个传奇人物体现了无限潜力的本质&#xff0c;包括天空的浩瀚和壮丽。 当它飞得很高&#xff0c;彩虹色的翅膀横跨广阔的空间&#xff0c;光线从它引人注目的身体…

ISS检测原理

ISS(Intrinsic Shape Signatures)是由Yu Zhong于2009年提出的一种三维形状描述子,用于描述局部或半局部区域的点云,局部区域可以理解为以一个点云中某点为球心,以一定半径构成的可以包含多个内点的球形区域,半局部则是半个球形区域。ISS可用于不同视角点云的配准、快速姿…

陕西水务发展建设集团2024招聘

报名时间: 2024-06-28 至 2025-06-28 单位名称: 陕西水务发展集团有限公司 所在地: 陕西省西安市未央区 陕西水务发展建设集团2024招聘公告 一、企业简介 陕西水务发展建设集团有限公司属陕西水务发展集团二级子公司,成立于2018年,主要从事市政、房建、水利水电等工程项…

文件系统(操作系统实验)

实验内容 &#xff08;1&#xff09;在内存中开辟一个虚拟磁盘空间作为文件存储器&#xff0c; 在其上实现一个简单单用户文件系统。 在退出这个文件系统时&#xff0c;应将改虚拟文件系统保存到磁盘上&#xff0c; 以便下次可以将其恢复到内存的虚拟空间中。 &#xff08;2&…