CentOS7.9 利用 KubeKey 扩容 Kubernetes v1.26 Worker 节点实战

转载:CentOS7.9 利用 KubeKey 扩容 Kubernetes v1.26 Worker 节点实战

知识点

  • 定级:入门级

  • KubeKey 安装部署 KubeSphere 和 Kubernetes

  • KubeKey 定制化部署集群

  • KubeSphere v3.4.0 功能概览

  • Kubernetes 基本操作

  • CentOS 系统内核升级

演示服务器配置

主机名IPCPU内存系统盘数据盘用途
ks-master-1192.168.9.9141640100KubeSphere/k8s-master
ks-master-2192.168.9.9241640100KubeSphere/k8s-master
ks-master-3192.168.9.9341640100KubeSphere/k8s-master
ks-worker-1192.168.9.9541640100k8s-worker/CI
ks-worker-2192.168.9.9641640100k8s-worker
ks-worker-3192.168.9.9741640100k8s-worker
ks-storage-1192.168.9.8141640100/100/100/100/100ElasticSearch/GlusterFS/Ceph-Rook/Longhorn/NFS/
ks-storage-2192.168.9.8241640100/100/100/100ElasticSearch/GlusterFS/Ceph-Rook/Longhorn/
ks-storage-3192.168.9.8341640100/100/100/100ElasticSearch/GlusterFS/Ceph-Rook/Longhorn/
registry192.168.9.804840100Sonatype Nexus 3
合计10401524002000

实战环境涉及软件版本信息

  • 操作系统:CentOS 7.9 x86_64

  • KubeSphere:v3.4.0

  • Kubernetes:v1.26.5

  • Containerd:1.6.4

  • KubeKey: v3.0.10

1. 本文简介

上一期,我们实战讲解了使用 KubeKey v3.0.10 自动化部署 3 Master 和 1 Worker 的 Kubernetes 集群和 KubeSphere。

本期我们将模拟真实的生产环境演示如何使用 KubeKey 将新增的 Worker 节点加入到已有的 Kubernetes 集群。

2. 操作系统基础配置

新增加的 Worker 节点,操作系统基础配置与初始化安装部署时 Worker 节点的配置保持一致。

其他节点配置说明:在 Master-1 节点上将 SSH 公钥发送到新增加的 Worker 节点。

请注意, 以下操作无特殊说明时需在所有新增节点上执行。本文只选取 Worker-2 节点作为演示,并假定其余服务器都已按照相同的方式进行配置和设置。

2.1 配置主机名


# 更改主机名
hostnamectl set-hostname ks-worker-2# 切入新的终端会话,验证主机名修改成功
bash

注意:worker 节点的主机名前缀是 ks-worker-

2.2 配置 DNS


echo "nameserver 114.114.114.114" > /etc/resolv.conf

2.3 配置服务器时区

配置服务器时区为 Asia/Shanghai


timedatectl set-timezone Asia/Shanghai

2.4 配置时间同步

安装 chrony 作为时间同步软件。


yum install chrony -y

修改配置文件 /etc/chrony.conf,修改 ntp 服务器配置。


vi /etc/chrony.conf# 删除所有的 server 配置
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst# 增加国内的 ntp 服务器,或是指定其他常用的时间服务器
pool cn.pool.ntp.org iburst# 可以使用 sed 自动替换生成
sed -i '/centos.pool.ntp.org/d' /etc/chrony.conf
sed -i "2a pool cn.pool.ntp.org iburst" /etc/chrony.conf

重启并设置 chrony 服务开机自启动。


systemctl enable chronyd --now

验证 chrony 同步状态。


# 执行查看命令
chronyc sourcestats -v# 正常的输出结果如下
[root@ks-worker-2 ~]# chronyc sourcestats -v
210 Number of sources = 4.- Number of sample points in measurement set./    .- Number of residual runs with same sign.|    /    .- Length of measurement set (time).|   |    /      .- Est. clock freq error (ppm).|   |   |      /           .- Est. error in freq.|   |   |     |           /         .- Est. offset.|   |   |     |          |          |   On the -.|   |   |     |          |          |   samples. \|   |   |     |          |          |             |
Name/IP Address            NP  NR  Span  Frequency  Freq Skew  Offset  Std Dev
==============================================================================
stratum2-1.ntp.mow01.ru.>  31  15  104m     +0.159      1.100  +2357us  3096us
tick.ntp.infomaniak.ch     32  16  104m     -0.003      2.560  +3440us  5839us
36.110.235.196             32  19   90m     -0.074      0.631  -4723us  1107us
ntp.ams1.nl.leaseweb.net   29  19  105m     +0.099      1.789    +48ms  4333us

2.5 关闭系统防火墙


systemctl stop firewalld && systemctl disable firewalld

2.6 禁用 SELinux

# 使用 sed 修改配置文件,实现彻底的禁用
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config# 使用命令,实现临时禁用,这一步其实不做也行,KubeKey 会自动配置
setenforce 0

2.7 安装系统依赖

在所有节点上,以 root 用户登陆系统,执行下面的命令为 Kubernetes 安装系统基本依赖包。


# 安装 Kubernetes 系统依赖包
yum install curl socat conntrack ebtables ipset ipvsadm -y

2.8 基础配置自动化 Shell 脚本

除配置主机名之外,上述 2-7 步骤的所有操作,都可以整理成自动化配置脚本。


echo "nameserver 114.114.114.114" > /etc/resolv.conf
timedatectl set-timezone Asia/Shanghai
yum install chrony -y
sed -i '/centos.pool.ntp.org/d' /etc/chrony.conf
sed -i "2a pool cn.pool.ntp.org iburst" /etc/chrony.conf
systemctl enable chronyd --now
chronyc sourcestats -v
systemctl stop firewalld && systemctl disable firewalld
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0
yum install curl socat conntrack ebtables ipset ipvsadm -y

2.9 Master-1 节点额外配置

本小节为可选配置项,只需要在 Master-1 节点执行。如果你使用纯密码的方式作为服务器远程连接认证方式,可以忽略本节内容。

输入以下命令将 SSH 公钥从 Master-1 节点发送到其他节点。命令执行时输入 yes,以接受服务器的 SSH 指纹,然后在出现提示时输入 root 用户的密码。


ssh-copy-id root@192.168.9.96
ssh-copy-id root@192.168.9.97

添加并上传 SSH 公钥后,您现在可以执行下面的命令验证,通过 root 用户连接到所有服务器,无需密码验证。


[root@ks-master-1 ~]# ssh root@192.168.9.96
# 登陆输出结果 略

3. 操作系统磁盘配置

服务器新增一块数据盘 /dev/sdb,用于 Containerd 和 Kubernetes Pod 的持久化存储。

本小节的配置比较简单,因此,下面的内容为无废话实操版。

请注意,以下操作无特殊说明时需在所有新增节点上执行。本文只选取 Worker-2 节点作为演示,并假定其余服务器都已按照相同的方式进行配置和设置。

3.1 使用 LVM 配置磁盘

为了满足部分用户希望在生产上线后,磁盘容量不够时可以实现扩容,本文采用了 LVM 的方式配置磁盘(实际上,本人维护的生产环境,几乎不用 LVM

  • 创建 PV

 pvcreate /dev/sdb
  • 创建 VG


vgcreate data /dev/sdb
  • 创建 LV


# 使用所有空间,VG 名字为 data,LV 名字为 lvdata
lvcreate -l 100%VG data -n lvdata

3.2 格式化磁盘


mkfs.xfs /dev/mapper/data-lvdata

3.3 磁盘挂载

  • 手工挂载


mkdir /data
mount /dev/mapper/data-lvdata /data/
  • 开机自动挂载


tail -1 /etc/mtab >> /etc/fstab

3.4 创建数据目录

  • 创建 openebs 本地数据根目录


mkdir -p /data/openebs/local
  • 创建 Containerd 数据目录


mkdir -p /data/containerd
  • 创建 Containerd 数据目录软连接


ln -s /data/containerd /var/lib/containerd

说明: KubeKey 不支持在部署的时候更改 Containerd 的数据目录,只能用这种变通的方式(也可以提前手工安装 Containerd,建议)。

3.5 磁盘配置自动化 Shell 脚本


pvcreate /dev/sdb
vgcreate data /dev/sdb
lvcreate -l 100%VG data -n lvdata
mkfs.xfs /dev/mapper/data-lvdata
mkdir /data
mount /dev/mapper/data-lvdata /data/
tail -1 /etc/mtab >> /etc/fstab
mkdir -p /data/openebs/local
mkdir -p /data/containerd
ln -s /data/containerd /var/lib/containerd

4. 操作系统高级配置

此小节的操作内容为升级 CentOS 7.9 操作系统内核,命令执行过程跟集群其他节点相比有删减,只保留了必须执行的命令。

请注意,以下操作无特殊说明时需在集群所有节点上执行。本文只选取 Worker-2 节点作为演示,并假定其余服务器都已按照相同的方式进行配置和设置。

4.1 增加 ELRepo 软件源

  • 导入 RPM GPG public key


rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
  • 安装 ELRepo


yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm

4.2 安装新版本内核


yum --enablerepo=elrepo-kernel install kernel-lt

注意: 这里我们只安装内核,同时安装其他包,会有包 conflicts 的报错。

4.3 配置新内核引导系统

执行内核升级的命令,正确执行后,系统内核还是默认的版本,如果此时直接执行 reboot 命令,重启后使用的内核版本还是默认的 3.10,不会使用新的 5.4.254 的内核。

  • 修改系统默认内核为新内核


grubby --set-default "/boot/vmlinuz-5.4.254-1.el7.elrepo.x86_64"

注意:命令成功执行,无任何输出。

4.4 重启系统验证新内核并安装其他 Kernel 相关软件包

  • 重启系统,使用新内核引导系统

reboot
  • 安装其他 Kernel 相关软件包

在使用新内核引导系统后,安装其他 Kernel 相关软件包,解决之前出现的依赖冲突问题。


# 卸载旧版本的 kernel-tools 相关软件包,保留 kernel,避免新内核异常无法进入系统
yum remove kernel-tools-3.10.0-1160.71.1.el7.x86_64 kernel-tools-libs-3.10.0-1160.71.1.el7.x86_64# 安装新版本的 kernel-tools 相关软件包
yum --enablerepo=elrepo-kernel install kernel-lt-tools kernel-lt-tools-libs

4.5 高级配置自动化 Shell 脚本

除重启验证流程之外,上述 1-3 步骤的所有操作,都可以整理成自动化配置脚本。

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm -y
yum --enablerepo=elrepo-kernel install kernel-lt -y
grubby --set-default "/boot/vmlinuz-5.4.254-1.el7.elrepo.x86_64"

5. 使用 KubeKey 扩容 Worker 节点

接下来我们使用 KubeKey 将新增加的节点加入到 Kubernetes 集群,整个过程比较简单,仅需两步。

  • 修改 KubeKey 部署时使用的集群配置文件

  • 执行增加节点的命令

5.1 修改集群配置文件

通过 SSH 登陆到 master-1 节点,切换到原有的 kubekey 目录,修改原有的集群配置文件,我们实战中使用的名字为 kubesphere-v340-v1265.yaml,请根据实际情况修改 。

主要修改点:

  • spec.hosts 部分:增加新的 worker 节点的信息。

  • spec.roleGroups.worker 部分:增加新的 worker 节点的信息

修改后的示例如下:

apiVersion: kubekey.kubesphere.io/v1alpha2
kind: Cluster
metadata:name: sample
spec:hosts:- {name: ks-master-1, address: 192.168.9.91, internalAddress: 192.168.9.91, port: 22, user: root, password: "P@88w0rd"}- {name: ks-master-2, address: 192.168.9.92, internalAddress: 192.168.9.92, user: root, privateKeyPath: "~/.ssh/id_ed25519"}- {name: ks-master-3, address: 192.168.9.93, internalAddress: 192.168.9.93, user: root, privateKeyPath: "~/.ssh/id_ed25519"}- {name: ks-worker-1, address: 192.168.9.95, internalAddress: 192.168.9.95, user: root, privateKeyPath: "~/.ssh/id_ed25519"}- {name: ks-worker-2, address: 192.168.9.96, internalAddress: 192.168.9.96, user: root, privateKeyPath: "~/.ssh/id_ed25519"}- {name: ks-worker-3, address: 192.168.9.97, internalAddress: 192.168.9.97, user: root, privateKeyPath: "~/.ssh/id_ed25519"}roleGroups:etcd:- ks-master-1- ks-master-2- ks-master-3control-plane:- ks-master-1- ks-master-2- ks-master-3worker:- ks-worker-1- ks-worker-2- ks-worker-3....
# 下面的内容保持不变

5.2 使用 KubeKey 增加节点

在增加节点之前,我们再确认一下当前集群的节点信息。

[root@ks-master-1 kubekey]# kubectl get nodes -o wide
NAME          STATUS   ROLES           AGE    VERSION   INTERNAL-IP    EXTERNAL-IP   OS-IMAGE                KERNEL-VERSION                CONTAINER-RUNTIME
ks-master-1   Ready    control-plane   129m   v1.26.5   192.168.9.91   <none>        CentOS Linux 7 (Core)   5.4.254-1.el7.elrepo.x86_64   containerd://1.6.4
ks-master-2   Ready    control-plane   129m   v1.26.5   192.168.9.92   <none>        CentOS Linux 7 (Core)   5.4.254-1.el7.elrepo.x86_64   containerd://1.6.4
ks-master-3   Ready    control-plane   129m   v1.26.5   192.168.9.93   <none>        CentOS Linux 7 (Core)   5.4.254-1.el7.elrepo.x86_64   containerd://1.6.4
ks-worker-1   Ready    worker          128m   v1.26.5   192.168.9.95   <none>        CentOS Linux 7 (Core)   5.4.254-1.el7.elrepo.x86_64   containerd://1.6.4

接下来我们执行下面的命令,使用修改后的配置文件将新增的 Worker 节点加入集群。


export KKZONE=cn
./kk add nodes -f kubesphere-v340-v1265.yaml

注意: export KKZONE=cn 一定要先执行,否则会去 DockerHub 上拉取镜像。

上面的命令执行后,首先 kk 会检查部署 Kubernetes 的依赖及其他详细要求。检查合格后,系统将提示您确认安装。输入 yes 并按 ENTER 继续部署。


[root@ks-master-1 kubekey]# ./kk add nodes -f kubesphere-v340-v1265.yaml_   __      _          _   __
| | / /     | |        | | / /
| |/ / _   _| |__   ___| |/ /  ___ _   _
|    \| | | | '_ \ / _ \    \ / _ \ | | |
| |\  \ |_| | |_) |  __/ |\  \  __/ |_| |
\_| \_/\__,_|_.__/ \___\_| \_/\___|\__, |__/ ||___/11:15:55 CST [GreetingsModule] Greetings
11:15:55 CST message: [ks-master-3]
Greetings, KubeKey!
11:15:55 CST message: [ks-worker-3]
Greetings, KubeKey!
11:15:56 CST message: [ks-worker-1]
Greetings, KubeKey!
11:15:56 CST message: [ks-worker-2]
Greetings, KubeKey!
11:15:56 CST message: [ks-master-1]
Greetings, KubeKey!
11:15:56 CST message: [ks-master-2]
Greetings, KubeKey!
11:15:56 CST success: [ks-master-3]
11:15:56 CST success: [ks-worker-3]
11:15:56 CST success: [ks-worker-1]
11:15:56 CST success: [ks-worker-2]
11:15:56 CST success: [ks-master-1]
11:15:56 CST success: [ks-master-2]
11:15:56 CST [NodePreCheckModule] A pre-check on nodes
11:15:56 CST success: [ks-worker-2]
11:15:56 CST success: [ks-worker-3]
11:15:56 CST success: [ks-worker-1]
11:15:56 CST success: [ks-master-2]
11:15:56 CST success: [ks-master-3]
11:15:56 CST success: [ks-master-1]
11:15:56 CST [ConfirmModule] Display confirmation form
+-------------+------+------+---------+----------+-------+-------+---------+-----------+--------+--------+------------+------------+-------------+------------------+--------------+
| name        | sudo | curl | openssl | ebtables | socat | ipset | ipvsadm | conntrack | chrony | docker | containerd | nfs client | ceph client | glusterfs client | time         |
+-------------+------+------+---------+----------+-------+-------+---------+-----------+--------+--------+------------+------------+-------------+------------------+--------------+
| ks-worker-1 | y    | y    | y       | y        | y     | y     | y       | y         | y      |        | v1.6.4     |            |             |                  | CST 11:15:56 |
| ks-worker-2 | y    | y    | y       | y        | y     | y     | y       | y         | y      |        |            |            |             |                  | CST 11:15:56 |
| ks-worker-3 | y    | y    | y       | y        | y     | y     | y       | y         | y      |        |            |            |             |                  | CST 11:15:56 |
| ks-master-1 | y    | y    | y       | y        | y     | y     | y       | y         | y      |        | v1.6.4     |            |             |                  | CST 11:15:56 |
| ks-master-2 | y    | y    | y       | y        | y     | y     | y       | y         | y      |        | v1.6.4     |            |             |                  | CST 11:15:56 |
| ks-master-3 | y    | y    | y       | y        | y     | y     | y       | y         | y      |        | v1.6.4     |            |             |                  | CST 11:15:56 |
+-------------+------+------+---------+----------+-------+-------+---------+-----------+--------+--------+------------+------------+-------------+------------------+--------------+This is a simple check of your environment.
Before installation, ensure that your machines meet all requirements specified at
https://github.com/kubesphere/kubekey#requirements-and-recommendationsContinue this installation? [yes/no]:

安装过程日志输出比较多,为了节省篇幅这里就不展示了。

部署完成需要大约 15 分钟左右,具体看网速和机器配置,本次部署完成耗时 7 分钟。

部署完成后,您应该会在终端上看到类似于下面的输出。

11:21:21 CST [AutoRenewCertsModule] Generate k8s certs renew script
11:21:21 CST success: [ks-master-3]
11:21:21 CST success: [ks-master-2]
11:21:21 CST success: [ks-master-1]
11:21:21 CST [AutoRenewCertsModule] Generate k8s certs renew service
11:21:21 CST success: [ks-master-2]
11:21:21 CST success: [ks-master-1]
11:21:21 CST success: [ks-master-3]
11:21:21 CST [AutoRenewCertsModule] Generate k8s certs renew timer
11:21:22 CST success: [ks-master-3]
11:21:22 CST success: [ks-master-1]
11:21:22 CST success: [ks-master-2]
11:21:22 CST [AutoRenewCertsModule] Enable k8s certs renew service
11:21:22 CST success: [ks-master-2]
11:21:22 CST success: [ks-master-3]
11:21:22 CST success: [ks-master-1]
11:21:22 CST Pipeline[AddNodesPipeline] execute successfully

6. 扩容后集群状态验证

6.1 KubeSphere 管理控制台验证集群状态

我们打开浏览器访问 master-1 节点的 IP 地址和端口 30880,登陆 KubeSphere 管理控制台的登录页面。

进入集群管理界面,单击左侧「节点」菜单,点击「集群节点」查看 Kubernetes 集群可用节点的详细信息。

通过上面的图可以看出,最小化部署的 KubeSphere 整体资源消耗并不高,再看两张底层虚拟化(PVE)上 Master-1 和 Worker-1 的资源消耗。

  • Master-1(4C 16G)

  • Worker-1(4C 16G)

6.2 Kubectl 命令行验证集群状态

  • 查看集群节点信息

在 master-1 节点运行 kubectl 命令获取 Kubernetes 集群上的可用节点列表。


kubectl get nodes -o wide

在输出结果中可以看到,当前的 Kubernetes 集群内的可用节点、节点的内部 IP、节点角色、节点的 Kubernetes 版本号、容器运行时及版本号、操作系统类型及内核版本等信息。

[root@ks-master-1 kubekey]# kubectl get nodes -o wide
NAME          STATUS   ROLES           AGE     VERSION   INTERNAL-IP    EXTERNAL-IP   OS-IMAGE                KERNEL-VERSION                CONTAINER-RUNTIME
ks-master-1   Ready    control-plane   139m    v1.26.5   192.168.9.91   <none>        CentOS Linux 7 (Core)   5.4.254-1.el7.elrepo.x86_64   containerd://1.6.4
ks-master-2   Ready    control-plane   139m    v1.26.5   192.168.9.92   <none>        CentOS Linux 7 (Core)   5.4.254-1.el7.elrepo.x86_64   containerd://1.6.4
ks-master-3   Ready    control-plane   139m    v1.26.5   192.168.9.93   <none>        CentOS Linux 7 (Core)   5.4.254-1.el7.elrepo.x86_64   containerd://1.6.4
ks-worker-1   Ready    worker          138m    v1.26.5   192.168.9.95   <none>        CentOS Linux 7 (Core)   5.4.254-1.el7.elrepo.x86_64   containerd://1.6.4
ks-worker-2   Ready    worker          2m45s   v1.26.5   192.168.9.96   <none>        CentOS Linux 7 (Core)   5.4.254-1.el7.elrepo.x86_64   containerd://1.6.4
ks-worker-3   Ready    worker          2m44s   v1.26.5   192.168.9.97   <none>        CentOS Linux 7 (Core)   5.4.254-1.el7.elrepo.x86_64   containerd://1.6.4
  • 查看 Pod 列表

输入以下命令获取在 Kubernetes 集群上运行的 Pod 列表,按工作负载在 NODE 上的分布排序。


kubectl get pods -o wide -A | sort -k 8

注意: 输出结果太多,只展示了新增 Worker 节点上运行的 Pod 信息,请确保所有的 Pod 状态 为 Running

在输出结果中 (有删减) 可以看到, 新增的两个 Worker 节点上已经运行了 5 个必须的基本组件。

[root@ks-master-1 kubekey]# kubectl get pods -o wide -A | sort -k 8
NAMESPACE                      NAME                                               READY   STATUS    RESTARTS       AGE     IP              NODE          NOMINATED NODE   READINESS GATES
kubesphere-monitoring-system   node-exporter-5tzlw                                2/2     Running   0              5m19s   192.168.9.96    ks-worker-2   <none>           <none>
kube-system                    calico-node-jm56s                                  1/1     Running   0              5m19s   192.168.9.96    ks-worker-2   <none>           <none>
kube-system                    haproxy-ks-worker-2                                1/1     Running   0              5m14s   192.168.9.96    ks-worker-2   <none>           <none>
kube-system                    kube-proxy-5k4k6                                   1/1     Running   0              5m19s   192.168.9.96    ks-worker-2   <none>           <none>
kube-system                    nodelocaldns-s8fr9                                 1/1     Running   0              5m19s   192.168.9.96    ks-worker-2   <none>           <none>
kubesphere-monitoring-system   node-exporter-lggbk                                2/2     Running   0              5m18s   192.168.9.97    ks-worker-3   <none>           <none>
kube-system                    calico-node-vcmb2                                  1/1     Running   0              5m18s   192.168.9.97    ks-worker-3   <none>           <none>
kube-system                    haproxy-ks-worker-3                                1/1     Running   0              5m14s   192.168.9.97    ks-worker-3   <none>           <none>
kube-system                    kube-proxy-tgmd5                                   1/1     Running   0              5m18s   192.168.9.97    ks-worker-3   <none>           <none>
kube-system                    nodelocaldns-4x77p                                 1/1     Running   0              5m18s   192.168.9.97    ks-worker-3   <none>           <none>
  • 查看 Image 列表

输入以下命令查看在 Worker 节点上已经下载的 Image 列表。

crictl images ls

在新增的 Worker 节点执行,输出结果如下:

[root@ks-worker-2 ~]# crictl images ls
IMAGE                                                              TAG                 IMAGE ID            SIZE
registry.cn-beijing.aliyuncs.com/kubesphereio/cni                  v3.23.2             a87d3f6f1b8fd       111MB
registry.cn-beijing.aliyuncs.com/kubesphereio/coredns              1.9.3               5185b96f0becf       14.8MB
registry.cn-beijing.aliyuncs.com/kubesphereio/haproxy              2.3                 0ea9253dad7c0       38.5MB
registry.cn-beijing.aliyuncs.com/kubesphereio/k8s-dns-node-cache   1.15.12             5340ba194ec91       42.1MB
registry.cn-beijing.aliyuncs.com/kubesphereio/kube-controllers     v3.23.2             ec95788d0f725       56.4MB
registry.cn-beijing.aliyuncs.com/kubesphereio/kube-proxy           v1.26.5             08440588500d7       21.5MB
registry.cn-beijing.aliyuncs.com/kubesphereio/kube-rbac-proxy      v0.11.0             29589495df8d9       19.2MB
registry.cn-beijing.aliyuncs.com/kubesphereio/node-exporter        v1.3.1              1dbe0e9319764       10.3MB
registry.cn-beijing.aliyuncs.com/kubesphereio/node                 v3.23.2             a3447b26d32c7       77.8MB
registry.cn-beijing.aliyuncs.com/kubesphereio/pause                3.8                 4873874c08efc       310kB
registry.cn-beijing.aliyuncs.com/kubesphereio/pod2daemon-flexvol   v3.23.2             b21e2d7408a79       8.67MB

注意: 新增节点的 Image 初始数量为 11 个。

至此,我们完成了在已有三个 Master 节点和一个 Worker 节点的 Kubernetes 集群中增加 2 个 Worker 节点的全部任务。

7. 总结

本文主要实战演示了在利用 KubeKey v3.0.10 自动化增加 Worker 节点到已有 Kubernetes 集群的详细过程。

全文总结概括包含以下内容 :

  • 新增节点的操作系统基础配置

  • 新增节点的操作系统数据盘 LVM 配置、磁盘挂载、数据目录创建

  • 新增节点的操作系统内核升级

  • KubeKey 集群配置文件的修改更新

  • 利用 KubeKey 自动化增加新的节点

  • 增加节点完成后的验证过程

  • KubeShere 和 最小化 Kubernetes 集群的 CPU、内存消耗情况

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python爬虫:下载人生格言

Python爬虫:下载人生格言 爬取网页 将这些格言下载存储到本地 代码: import requests #导入requests库&#xff0c;用于提取网页 from lxml import etree#导入lxml库&#xff0c;用于Xpath数据解析#请求头 header{ user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) A…

游戏加速器推荐 网游加速器排行榜

游戏加速器推荐&#xff0c;玩游戏用什么加速器&#xff01;我得给你推荐一款我常用的。首先呢&#xff0c;就是深度加速器&#xff0c;它针对目前手游网游的游戏加速效果特别棒&#xff0c;而且界面也很友好。 另外&#xff0c;还有深度加速器&#xff0c;这款加速器不仅支持国…

【信创】Linux操作系统上使用命令查看设备序列号

原文链接&#xff1a;【信创】Linux操作系统上使用命令查看设备序列号 Hello&#xff0c;大家好啊&#xff01;今天给大家带来一篇关于在信创操作系统上如何查看设备序列号的文章。在进行设备管理、维护和售后服务时&#xff0c;设备序列号是一个非常重要的信息。本文将详细介绍…

HarmonyOS入门

HarmonyOS 系统定义 HarmonyOS 是一款面向万物互联时代的、全新的分布式操作系统。 Harmony提出了基于同一套系统能力、适配多种终端形态的分布式理念&#xff0c;能够支持手机、平板、智能穿戴、智慧屏、车机等多种终端设置&#xff0c;提供全场景&#xff08;移动办公、运动…

simulink绘制bode图

&#x1f3c6;本文收录于《CSDN问答解惑-专业版》专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收…

【PGCCC】PostgreSQL 14 小版本分析,有那个版本不建议使用#PG中级

以下是对 PostgreSQL 14 各个小版本的详细分析&#xff0c;包括每个版本的主要变化、修复的 bug 和潜在的问题&#xff1a; PostgreSQL 14.0 发布日期&#xff1a;2021 年 9 月 30 日 主要变化&#xff1a; 增加了并行查询的改进&#xff0c;提升了性能。增强了 JSON 数据类…

【人工智能】Transformers之Pipeline(三):文本转音频(text-to-audio/text-to-speech)

​​​​​​​ 一、引言 pipeline&#xff08;管道&#xff09;是huggingface transformers库中一种极简方式使用大模型推理的抽象&#xff0c;将所有大模型分为音频&#xff08;Audio&#xff09;、计算机视觉&#xff08;Computer vision&#xff09;、自然语言处理&#x…

查找算法:线性查找,golang实现

目录 前言 线性查找 代码示例 1. 算法包 2. 线性查找代码 3. 模拟程序 4. 运行程序 循环次数 假如目标值正好在数组中的第一位 假如目标值正好在数组中的第五位 假如目标值正好在数组中的最后一位 假如目标值不在数组中 线性查找的思想 1. 顺序遍历 2. 比较 3.…

计算机毕业设计选题推荐-课程教学辅助系统-Java/Python项目实战

✨作者主页&#xff1a;IT研究室✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

金牌挑战——奥运知识大比拼

巴黎奥运会乒乓球项目1日结束男、女单打四分之一决赛。在四分之一决赛中&#xff0c;上演惊天逆转&#xff0c;在大比分0:2、2:3落后的逆势下力挽狂澜&#xff0c;4:3艰难战胜对手&#xff0c;进入四强。祝贺&#xff01; 为此&#xff0c;我立马出了一个知识竞赛&#xff0c;…

vmware安装银河麒麟V10高级服务器操作系统

vmware安装银河麒麟V10高级服务器操作系统 1、下载银河麒麟V10镜像2、VMware安装银河麒麟V10高级服务器操作系统2.1、新建虚拟机2.2、安装虚拟机 3、配置银河麒麟V10高级服务器操作系统3.1、安装vmware tools3.2、配置静态IP地址 和 dns3.3、查看磁盘分区3.4、查看系统版本、内…

正则表达式与文本处理

目录 一、正则表达式 1、正则表达式定义 1.1正则表达式的概念及作用 1.2、正则表达式的工具 1.3、正则表达式的组成 2、基础正则表达式 3、扩展正则表达式 4、元字符操作 4.1、查找特定字符 4.2、利用中括号“[]”来查找集合字符 4.3、查找行首“^”与行尾字符“$”…

[C++探索]初始化列表,static成员,友元函数,内部类,匿名对象

&#x1f496;&#x1f496;&#x1f496;欢迎来到我的博客&#xff0c;我是anmory&#x1f496;&#x1f496;&#x1f496; 又和大家见面了 欢迎来到C探索系列 作为一个程序员你不能不掌握的知识 先来自我推荐一波 个人网站欢迎访问以及捐款 推荐阅读 如何低成本搭建个人网站…

二百五十二、OceanBase——Linux上安装OceanBase数据库(二):新用户配置ssh免密登录

一、目的 在OBD页面上部署OceanBase数据库时发现&#xff0c;需要把新用户也要配置ssh免密登录 二、前提 root用户已经设置免密登录 三、配置步骤 1 切换到新用户obadmin [roothurys23 ~]# su obadmin 2 执行命令生成秘钥文件 [obadminhurys23 oceanbase]$ ssh-keygen …

SSH实现电脑VScode免密登录到虚拟机其原理

在网上想看一下这个原理。发现写的还是比较乱&#xff0c;所以自己总结了一份方便回顾 SSH免密登录的原理主要基于非对称密钥加密技术&#xff0c;比较常用的是RSA算法。 以下是SSH免密登录的详细步骤和原理&#xff1a; 1. 生成密钥对 在客户端上生成一对密钥&#xff0c;…

初识Docker及管理Docker

Docker部署 初识DockerDocker是什么Docker的核心概念镜像容器仓库 容器优点容器在内核中支持2种重要技术&#xff1a;Docker容器与虚拟机的区别 安装Docker源码安装yum安装检查Docker Docker 镜像操作配置镜像加速器&#xff08;阿里系&#xff09;搜索镜像获取镜像查看镜像信息…

【综合案例】使用DevEco Studio编写B站视频卡片

效果展示 知识点 层叠布局 介绍&#xff1a;层叠布局具有较强的 组件层叠 能力。 使用场景&#xff1a;卡片层叠效果 特点&#xff1a;层叠操作 更简洁&#xff0c;编码效率更高。【绝对定位的优势是更灵活】 Stack容器内的子元素顺序是先写的在最下面&#xff0c;即从下到上依…

Linux服务器CPU使用率或CPU负载较高问题的排查及解决方案

本文主要介绍当Linux系统ECS实例CPU使用率或CPU负载较高时&#xff0c;如何排查分析及常见案例说明。 操作场景 在您使用ECS实例过程中&#xff0c;可能会遇到实例CPU使用率或CPU负载持续较高的情况&#xff0c;您可以按照以下步骤排查定位具体问题。 找到影响CPU使用率或CPU…

每日期刊分享

检索:知网 G4 刊期:现收25年3-4月刊版面&#xff0c;预计25年4-5月出刊: 收稿范围:收小学到高中的教育教学稿件

react高级组件ProForm实现输入框搜索

实现界面 <Col span{12}><ProForm.Itemname"name"label"推荐用户"><AutoCompleteclassName"pro-field pro-field-md"placeholder"请输入用户名"options{NameArr}onSearch{debounce(searchUser, 500)}onSelect{onSelect…