k8s集群新增节点

目前集群状态

  1. 如K8S 集群搭建中规划的集群一样
Masternode01node02
IP192.168.100.100192.168.100.101192.168.100.102
OSCent OS 7.9Cent OS 7.9Cent OS 7.9
  1. 目前打算新增节点node03
Masternode01node02node03
IP192.168.100.100192.168.100.101192.168.100.102192.168.100.103
OSCent OS 7.9Cent OS 7.9Cent OS 7.9Cent OS 7.9

1. 安装虚拟机

1.1 硬件分配

  • CPU : 1 颗 2 核 CPU
  • 内存:2048 MB
  • 磁盘:50 GB
  • 其它:默认
    在这里插入图片描述

1.2 为设备安装OS

Cent OS 7.9 阿里云ISO链接

  • 加载系统时,选择基础服务器
    在这里插入图片描述
[root@Master ~]# cat /etc/redhat-release 
CentOS Linux release 7.9.2009 (Core)

1.3 配置网卡

1.3.1 node 03

opkeyvalue位置
修改BOOTPROTOnone4
修改ONBOOTyes15
新增IPADDR192.168.100.103
新增PREFIX24
新增GATEWAY192.168.100.2
新增DNS1223.5.5.5
新增IPV6_PRIVACYno
[root@node03 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=eb4335b9-98b7-4c63-ba0d-a25fa63aa5f5
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.100.103
PREFIX=24
GATEWAY=192.168.100.2
DNS1=223.5.5.5
IPV6_PRIVACY=no

1.4 修改hosts文件

1.3.1 Master

[root@Master ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.100.100 Master
192.168.100.101 node01
192.168.100.102 node02
192.168.100.103 node03

1.3.2 node 01

[root@node01 ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.100.100 Master
192.168.100.101 node01
192.168.100.102 node02
192.168.100.103 node03

1.3.3 node 02

[root@node02 ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.100.100 Master
192.168.100.101 node01
192.168.100.102 node02
192.168.100.103 node03

1.3.3 node 03

[root@node03 ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.100.100 Master
192.168.100.101 node01
192.168.100.102 node02
192.168.100.103 node03

2. 修改内核

建议安装XShell, XShell 官网

2.2~2.7的命令,此次仅node 03上同时执行,2.1除外

  • 在XShell上,单击右键->发送键输入到->所有会话
    在这里插入图片描述

2.1 时间同步

2.1 的命令建议Master、node 01、node 02、node 03上同时执行

# 启动chronyd服务
[root@node03 ~]# systemctl start chronyd
# 设置chronyd服务开机自启
[root@node03 ~]# systemctl enable chronyd
# 验证时间
[root@node03 ~]# date

2.2 禁用iptables&firewalld

[root@node03 ~]# systemctl stop firewalld
[root@node03 ~]# systemctl disable firewalld
[root@node03 ~]# systemctl stop iptables
[root@node03 ~]# systemctl disable iptables

2.3 禁用SELinux

  • 命令getenforce可查看是否开启
# 仅修改SELINUX值为disabled
[root@node03 ~]# vim /etc/selinux/config

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
# SELINUX=enforcing
SELINUX=disabled
# SELINUXTYPE= can take one of three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

2.4 禁用swap

# 将最后一行注释掉
[root@node03 ~]# vim /etc/fstab

#
# /etc/fstab
# Created by anaconda on Sun Jun 23 11:17:14 2024
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=83ed761a-3ce3-46d3-889c-e4078b53b0c1 /boot                   xfs     defaults        0 0
# /dev/mapper/centos-swap swap                    swap    defaults        0 0
# 查看swap是否关闭,如刚刚修改,需要重启才能生效,此时暂不重启,2.7会重启
[root@node03 ~]#  free -m

2.5 修改linux内核参数

[root@node03 ~]# vim /etc/sysctl.d/kubernetes.conf
# 添加网桥过滤和地址转发功能
# 在/etc/sysctl.d/kubernetes.conf文件中添加如下内容
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1

# 重新加载配置
[root@node03 ~]# sysctl -p
# 加载网桥过滤模块
[root@node03 ~]# modprobe br_netfilter
# 查看网桥过滤模块是否加载成功
[root@node03 ~]# lsmod | grep br_netfilter

2.6 配置ipvs功能

此处可能需要配置yum源

[root@node03 ~]# mkdir -p /etc/yum.repos.d/backup/
# 备份本地yum包     
[root@node03 ~]# mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/
[root@node03 ~]# wget -O /etc/yum.repos.d/CentOs-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@node03 ~]# yum clean all
[root@node03 ~]# yum makecache

在k8s中Service有两种代理模型:

  • 基于iptables的
  • 基于ipvs的

本人使用ipvs,下面手动载入ipvs模块

[root@node03 ~]# yum install ipset ipvsadm -y
[root@node03 ~]# vim /etc/sysconfig/modules/ipvs.modulesmodprobe
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
[root@node03 ~]# chmod +x /etc/sysconfig/modules/ipvs.modulesmodprobe
[root@node03 ~]# /bin/bash /etc/sysconfig/modules/ipvs.modulesmodprobe
[root@node03 ~]# lsmod | grep -e ip_vs -e nf_conntrack_ipv4

在这里插入图片描述

2.7 重启

[root@node03 ~]# reboot

注意:2.2~2.7的命令仅在node 03上执行,2.1除外(在全部节点同时执行)

3. 安装Docker

3.1~3.5的命令,仅在node 03上执行

3.1 切换镜像源

[root@node03 ~]# wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

3.2 查看镜像源中docker版本

[root@node03 ~]# yum list docker-ce --showduplicates

3.3 安装docker-ce

  • 若不指定–setopt=obsoletes=0 参数,yum自动安装更高版本
[root@node03 ~]# yum install --setopt=obsoletes=0 docker-ce-18.06.3.ce-3.el7 -y

3.4 添加配置文件

  • Docker默认使用Cgroup Driver为cgroupfs
  • K8s推荐使用systemd替代cgroupfs
[root@node03 ~]# mkdir /etc/docker
[root@node03 ~]# vim /etc/docker/daemon.json
{
  "exec-opts":["native.cgroupdriver=systemd"],
  "registry-mirrors":["https://kn0t2bca.mirror.aliyuncs.com"]
}

3.5 启动docker

[root@node03 ~]# systemctl restart docker
[root@node03 ~]# systemctl enable docker
# 查看docker是否将CGroupDriver更新为systemd
[root@node03 ~]# docker info

注意:3.1~3.5的命令仅在node03上执行

4. 安装kubernetes组件

4.1~4.4的命令,仅在node03 上执行

4.1 更换K8s镜像源为阿里镜像源

[root@node03 ~]# vim /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

4.2 安装kubeadm、kubelet、kubectl

[root@node03 ~]# yum install --setopt=obsoletes=0 kubeadm-1.17.4-0 kubelet-1.17.4-0 kubectl-1.17.4-0 -y

4.3 配置kubelet的cgroup

# 配置kubelet的cgroup
[root@node03 ~]# vim /etc/sysconfig/kubelet
KUBELET_CGROUP_ARGS="--cgroup-driver=systemd"                                                                        
KUBE_PROXY_MODE="ipvs"

4.4 kubelet开机自启

[root@node03 ~]# systemctl enable kubelet

注意:4.1~4.4的命令仅在node03上执行

5. 准备集群镜像

5.1~5.2的命令,仅在node03上执行

5.1 查看集群所需镜像

[root@node03 ~]# kubeadm config images list

5.2 手动编写脚本,拉取镜像

[root@node03 ~]# vim k8s.repo
#!/bin/bash
images=(
kube-apiserver:v1.17.4
kube-controller-manager:v1.17.4
kube-scheduler:v1.17.4
kube-proxy:v1.17.4
pause:3.1
etcd:3.4.3-0
coredns:1.6.5
)
for imageName in ${images[@]} ; do
	docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName
	docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName k8s.gcr.io/$imageName
	docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName
done
[root@node03 ~]# chmod +x k8s.repo
[root@node03 ~]# ./k8s.repo
[root@node03 ~]# docker images

在这里插入图片描述

注意:5.1~5.2的命令仅在node03 上执行

6. 将node03加入集群

6.1 node03加载镜像

  • worker节点目前有哪些镜像,node03就要有哪些镜像
  • worker节点指node01、node02、node03

6.2 node03加入集群

仅在node 03节点上操作

6.2.1 场景一:距离最近一次集群中加入新节点不超过24h

  1. 可通过查看最近一次加入集群的新节点的历史命令,复制到目前要加入的新节点node03下执行,命令如下所示
kubeadm join 192.168.100.100:6443 --token gkdzgt.v73dx3hhiczgmeud --discovery-token-ca-cert

6.2.2 场景二:距离最近一次集群中加入新节点超过24h

kubeadm token create --print-join-command

6.3 验证node03是否加入集群

仅在Master节点上操作

 kubectl get nodes -o wide

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

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

相关文章

NLP之词的重要性

文章目录 何为重要词TF*IDFTF*IDF其他版本TFIDF 算法特点TF*IDF的优势TF*IDF劣势 TF*IDF的应用搜索引擎文本摘要文本相似度计算 上一篇文章介绍了新词的发现,用内部凝固度和左右熵来发现新词。这时候机器对一篇文章有了对词的一定理解,这时我们让机器上升…

了解Maven

一.环境搭建 如果使用的是社区版 版本要求为:2021.1-2022.1.4 如果使用的是idea专业版就无需版本要求,专业版下载私信我,免费教你下载 二,Maven 什么是Maven,也就是一个项目管理工具,用来基于pom的概念&#xff0c…

k8s(五)---名称空间

五、名称空间 名称空间是k8s划分不同工作空间的逻辑单位,是k8s资源逻辑隔离的机,。可以给不同的租户,不同的环境、不同的项目创建对应的命名空间。 1、查看名称空间 kubectl get ns kubectl get namespaces 此处展示了四个命名空间 2、管理名称空间 1…

【数智化案例展】沃太能源——MES系统建设引领智能制造新篇章

‍ 联想集团案例 本项目案例由联想集团投递并参与数据猿与上海大数据联盟联合推出的《2024中国数智化转型升级创新服务企业》榜单/奖项评选。 大数据产业创新服务媒体 ——聚焦数据 改变商业 沃太能源股份有限公司,一家在储能产品及智慧能源管理方案领域享有盛誉的…

一 GD32 MCU 开发环境搭建

GD32 系列为通用型 MCU ,所以开发环境也可以使用通用型的 IDE ,目前使用较多的是 KEIL、 IAR 、 GCC 和 Embedded Builder ,客户可以根据个人喜好来选择相应的开发环境。 目录 1、使用 Keil 开发 GD32 目前市面通用的MDK for ARM版本有Kei…

[笔记] SEW的振动分析工具DUV40A

1.便携式振动分析仪 DUV40A 文档编号:26871998/EN SEW是一家国际化的大型的机械设备供应商。产品线涵盖电机,减速机,变频器等全系列动力设备。DUV40A是他自己设计的一款振动分析工具。 我们先看一下它的软硬件参数: 内置两路传…

LiteOS增加执行自定义源码

开发过程注意事项: 源码工程路径不能太长 源码工程路径不能有中文 一定要关闭360等杀毒软件,否则编译的打包阶段会出错 增加自定义源码的步骤: 1.创建源码目录 2. 创建源文件 新建myhello目录后,再此目录下再新建源文件myhello_demo.c 3. 编…

Java常用排序算法

冒泡排序(Bubble Sort) arr[0] 与 arr[1]比较,如果前面元素大就交换,如果后边元素大就不交换。然后依次arr[1]与arr[2]比较,第一轮将最大值排到最后一位。 第二轮arr.length-1个元素进行比较,将第二大元素…

视频播放器的问题

<template><div class"app-container"><el-form :model"queryParam" ref"queryForm" :inline"true"><el-form-item label"题目ID&#xff1a;"><el-input v-model"queryParam.id" cle…

.NET MAUI开源架构_1.学习资源分享

最近需要开发Android的App&#xff0c;想预研下使用.NET开源架构.NET MAUI来开发App程序。因此网上搜索了下相关资料&#xff0c;现在把我查询的结果记录下&#xff0c;方便后面学习。 1.官方文档 1.1MAUI官方学习网站 .NET Multi-Platform App UI 文档 - .NET MAUI | Micro…

Rust 测试的组织结构

测试的组织结构 本章一开始就提到&#xff0c;测试是一个复杂的概念&#xff0c;而且不同的开发者也采用不同的技术和组织。Rust 社区倾向于根据测试的两个主要分类来考虑问题&#xff1a;单元测试&#xff08;unit tests&#xff09;与 集成测试&#xff08;integration test…

论文阅读 - Intriguing properties of neural networks

Intriguing properties of neural networks 经典论文、对抗样本领域的开山之作 发布时间&#xff1a;2014 论文链接: https://arxiv.org/pdf/1312.6199.pdf 作者&#xff1a;Christian Szegedy, Wojciech Zaremba, Ilya Sutskever, Joan Bruna, Dumitru Erhan, Ian Goodfellow,…

MongoDB教程(四):mongoDB索引

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; 文章目录 引言一、MongoD…

【RHCE】综合实验0710综合实验

题目&#xff1a; 主服务器192.168.244.130 防火墙允许服务的放行&#xff1a; selinux放行 [rootlocalhost ~]# ll -Z /nfs/rhce 总用量 4 -rw-r--r--. 1 root root unconfined_u:object_r:default_t:s0 8 7月 10 16:52 index.html -rw-r--r--. 1 nobody nobody system_…

【深度学习 pytorch】迁移学习 (迁移ResNet18)

李宏毅深度学习笔记 《深度学习原理Pytorch实战》 https://blog.csdn.net/peter6768/article/details/135712687 迁移学习 实际应用中很多任务的数据的标注成本很高&#xff0c;无法获得充足的训练数据&#xff0c;这种情况可以使用迁移学习(transfer learning)。假设A、B是两…

Dify中高质量索引模式时,通过线程池处理chunk过程

本文主要介绍了Dify中高质量索引模式时,如何通过线程池执行器来处理chunk的过程。源码位置:dify\api\core\indexing_runner.py\IndexingRunner._load。核心思想:假设一个数据集中有一个文档,该文档可以拆分为12个段(segment)。如果chunk_size=10,那么分为2批提交给线程池…

C语言——流程控制:if...else、switch...case

控制类语句&#xff1a; 逻辑运算符&#xff1a; 选择语句&#xff1a; if...else&#xff1a; if&#xff08;&#xff09;括号内的内容终究会被转换成0,1&#xff0c;满足的话即为1&#xff0c;不满足的话为0。因此要注意&#xff0c;&#xff08;&#xff09;括号内因为条件…

智慧城市3d数据可视化系统提升信息汇报的时效和精准度

在信息大爆炸的时代&#xff0c;数据的力量无可估量。而如何将这些数据以直观、高效的方式呈现出来&#xff0c;成为了一个亟待解决的问题。为此&#xff0c;我们推出了全新的3D可视化数据大屏系统&#xff0c;让数据“跃然屏上”&#xff0c;助力您洞察先机&#xff0c;决胜千…

【图解大数据技术】流式计算:Spark Streaming、Flink

【图解大数据技术】流式计算&#xff1a;Spark Streaming、Flink 批处理 VS 流式计算Spark StreamingFlinkFlink简介Flink入门案例Streaming Dataflow Flink架构Flink任务调度与执行task slot 和 task EventTime、Windows、WatermarksEventTimeWindowsWatermarks 批处理 VS 流式…

【我的机器学习之旅】打造个性化手写汉字识别系统

在当今这个数字化飞速发展的时代&#xff0c;人工智能&#xff08;AI&#xff09;已经渗透到我们生活的每一个角落&#xff0c;从智能家居到自动驾驶&#xff0c;无一不彰显着其强大的潜力和无限可能。作为一名计算机科学与技术专业的学生&#xff0c;我的毕业设计选择了一个既…