当前位置: 首页 > news >正文

VMware+RockyLinux+ikuai+docker+cri-docker+k8s+calico BGP网络 自用 实践笔记(底稿)

这是一篇底稿,底稿,底稿,重要的事情要说三遍。

推荐阅读目录:
VMware+RockyLinux+ikuai+docker+cri-docker+k8s+calico BGP网络 自用 实践笔记(一)
VMware+RockyLinux+ikuai+docker+cri-docker+k8s+calico BGP网络 自用 实践笔记(二)
VMware+RockyLinux+ikuai+docker+cri-docker+k8s+calico BGP网络 自用 实践笔记(三)
VMware+RockyLinux+ikuai+docker+cri-docker+k8s+calico BGP网络 自用 实践笔记(四)

1.本文详细记录了在VMware中安装Rocky Linux 9.6的完整过程,为后续Docker和Kubernetes实验做准备。主要内容包括:创建虚拟机时选择双网卡配置(仅主机模式+后续软路由)、设置4核CPU/4GB内存/100GB存储、自定义分区方案(/boot 800MB、swap 4GB、/ 剩余空间)、安装后配置静态IP(192.168.66.11)等关键步骤。文章采用图文结合的方式,详细展示了从ISO镜像安装到网络配置的全过程,特别强调了网络环境的模拟设置;

2.为Kubernetes集群准备三台Rocky Linux节点的两种方法:通过克隆虚拟机或全新安装。具体步骤包括:1)规划一主两从的k8s架构,由软路由ikuai提供外网;2)建议还原到初始快照状态(可选);3)演示从"justinstall"快照克隆出RockyLinux-2和RockyLinux-3两个节点的详细过程。最终完成三台实验节点的准备工作;

3.在虚拟化环境中部署iKuai软路由系统的详细步骤。首先准备了三台Rocky Linux虚拟机作为实验环境,通过创建虚拟机、添加双网卡(LAN/WAN)、加载iKuai 3.2 ISO镜像完成系统安装。重点展示了配置LAN口IP(192.168.66.200/24)、登录管理界面、绑定WAN口等关键操作流程。最后说明如何为三台Rocky Linux节点配置静态IP和网关(指向软路由),以实现通过软路由上网的目标。文中包含大量图文操作指引,适合需要搭建软路由为实验环境提供网络服务的用户参考;

在RockyLinux系统上部署Kubernetes v1.29.2集群的完整流程,采用一主(Master)二从(Worker)架构,使用Docker+CRI-Dockerd+kubeadm方案,并通过Calico网络插件实现集群网络功能。主要内容包括:网络与主机规划(设定IP地址和主机名)、基础环境准备(主机名配置、IP映射同步、ipvs安装等)、Docker安装及配置(指定版本安装、镜像源设置、daemon.json配置)。文档支持离线包安装方式,并提供了详细的命令行操作步骤和验证方法,适合生产环境。


🎯 Kubernetes v1.29.2 集群部署指南
一主二从 · Docker + CRI-Dockerd + kubeadm · Calico BGP网络


📋 部署架构

1 Master + 2 Worker Nodes
k8s-master01(192.168.66.11) ⚙️ k8s-node01(192.168.66.12) 🖥️ k8s-node02(192.168.66.13)


🔧 技术栈

  • 容器运行时: Docker 28.4.0 + CRI-Dockerd 0.3.9
  • 集群管理: kubeadm 1.29.2 | kubelet 1.29.2 | kubectl 1.29.2
  • 网络插件: Calico 3.26.3 (BGP模式)
  • Pod网络: 10.244.0.0/16 | Service CIDR: 10.10.0.0/12

部署特性

🔹 离线安装 (生产推荐)
🔹 高可用架构
🔹 BGP网络模式
🔹 完整集群就绪


🏗️ 集群状态

3节点 Ready | Calico Pod正常 | 网络互通


部署时间:2025年9月
Kubernetes版本:v1.29.2


目录:
VMware+RockyLinux+ikuai+docker+cri-docker+k8s+calico BGP网络 自用 实践笔记(一)
VMware+RockyLinux+ikuai+docker+cri-docker+k8s+calico BGP网络 自用 实践笔记(二)
VMware+RockyLinux+ikuai+docker+cri-docker+k8s+calico BGP网络 自用 实践笔记(三)
VMware+RockyLinux+ikuai+docker+cri-docker+k8s+calico BGP网络 自用 实践笔记(四)

1.如图,选择稍后安装操作系统

在这里插入图片描述

2.如图,新建,操作系统选择Linux,版本选择Rocky Linux 64位,要是找不到这个版本,可以选择centos8 64位

在这里插入图片描述

3.名称和位置自己选,尽量不要放系统盘,路径要带上虚拟机名称,或者你自己想要的命名,整个虚拟机文件才会单独在一个文件夹下,不然在建一个虚拟机的话容易串起来

在这里插入图片描述

4.如图,处理器2,核心数2,共4核

在这里插入图片描述

5.如图,内存4G

在这里插入图片描述

6.如图,网络选择仅主机模式

在这里插入图片描述

7.如图,IO控制器默认就行

在这里插入图片描述

8.如图,虚拟磁盘类型选择scsi和sata都可以,服务器上一般是scsi我们就选scsi了

在这里插入图片描述

9.如图,创建新的虚拟磁盘

在这里插入图片描述

10.磁盘大小,我们选择100G,虚拟磁盘选择单个文件

在这里插入图片描述

11.如图,直接下一步,待会会跟虚拟机文件同一个目录

在这里插入图片描述

等点完成后,这边虚拟磁盘会跟虚拟机文件一个目录下
在这里插入图片描述

12.如图,点完成

在这里插入图片描述

13.如图,点击编辑虚拟机,新加一块网卡,默认是nat模式,我们不更改,第二个网卡提供外网的支持,后续搞k8s会把第二个nat网卡关闭

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

14.如图,单机CD/DVD,使用ISO映像文件,选择我们准备好的Rocky-9.6-x86_64-minimal.iso,点击确认

在这里插入图片描述在这里插入图片描述

15.如图,点开启虚拟机,开机

在这里插入图片描述

16.如图,选择install 第一项,回车

在这里插入图片描述

17.如图,选择中文,继续

在这里插入图片描述

18.如图,分区,点击安装目标位置,

在这里插入图片描述

点自定义,完成
在这里插入图片描述

然后开始正式分区,/boot分800m,/swap分4000m,剩下的都给/
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

点击完成
在这里插入图片描述

接受
在这里插入图片描述

19.如图,设置root密码,root不要锁定,勾选允许root使用密码进行ssh登录,点击完成

在这里插入图片描述在这里插入图片描述

20.如图,点击开始安装

在这里插入图片描述
在这里插入图片描述

21.如图,vmware改一下仅主机模式的网段,要开始给虚拟机配置ip了

在这里插入图片描述
在这里插入图片描述

选中VMnet1,子网ip改为192.168.66.0,然后确定,这时候重启一下虚拟机,让虚拟机ip重新获取
在这里插入图片描述

22.如图,在vm终端里查看dhcp分配的ip,开始给虚拟机分配静态ip,数字小的ens160网卡是网卡1,仅主机模式的网卡

# 查看网卡信息
ip addr show

在这里插入图片描述

在finalshell里新建连接,ip输入192.168.66.128
在这里插入图片描述

23.如图,我们配置静态ip为192.168.66.11,method改为manual,添加address1=192.168.66.12/24

vi /etc/NetworkManager/system-connections/ens160.nmconnection
[ipv4]
method=manual
address1=192.168.66.12/24,192.168.66.200
wq

在这里插入图片描述

重启网卡,让ip重新获取 两组取一组执行都行

nmcli d d ens160
nmcli d u ens160
systemctl restart NetworkManager

在这里插入图片描述

24.如何,更改finalshell虚拟机ip,192.168.66.11,重新连接

192.168.66.11

在这里插入图片描述

25.如图,Rocky 系统软件yum源更换为阿里云源

sed -e 's|^mirrorlist=|#mirrorlist=|g' \-e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' \-i.bak \/etc/yum.repos.d/[Rr]ocky*.repo

在这里插入图片描述
建立缓存

dnf makecache

在这里插入图片描述

26.如图,防火墙修改 firewalld 为 iptables

systemctl stop firewalld
systemctl disable firewalld

在这里插入图片描述

yum -y install iptables-services

在这里插入图片描述

systemctl start iptables

在这里插入图片描述
查看默认规则

iptables -L

在这里插入图片描述

清空规则

iptables -F

在这里插入图片描述
将空规则保存到持久化文件

service iptables save

在这里插入图片描述

iptables开机自启

systemctl enable iptables

在这里插入图片描述

27.如图,禁用 Selinux

setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
grubby --update-kernel ALL --args selinux=0
# 查看是否禁用,grubby --info DEFAULT
# 回滚内核层禁用操作,grubby --update-kernel ALL --remove-args selinux

在这里插入图片描述

28.如图,设置时区

timedatectl set-timezone Asia/Shanghai

在这里插入图片描述

29.如图,关闭 swap 分区,上面分区的时候,可以直接不分swap 分区,这边就不用关,我们先分了swap 分区在关掉,演示一下开关 这个可以没有,是在安装k8s的时候要关掉 不过关掉就关掉了,到时候这句话我要改改

swapoff -a
sed -i 's:/dev/mapper/rl-swap:#/dev/mapper/rl-swap:g' /etc/fstab

在这里插入图片描述

30.如图,关机,拍快照,justinstall

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

31.开始为安装docker准备

加载 bridge

yum install -y epel-release
yum install -y bridge-utils

在这里插入图片描述
在这里插入图片描述

modprobe br_netfilter
echo 'br_netfilter' >> /etc/modules-load.d/bridge.conf
echo 'net.bridge.bridge-nf-call-iptables=1' >> /etc/sysctl.conf
echo 'net.bridge.bridge-nf-call-ip6tables=1' >> /etc/sysctl.conf
echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
sysctl -p

在这里插入图片描述

32.配置aliyun的docker源

yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo

在这里插入图片描述
在这里插入图片描述

33.如图,可以看到到docker源已经更换为阿里云

cat /etc/yum.repos.d/docker-ce.repo可以查看到docker源已经更换为阿里云的

cat /etc/yum.repos.d/docker-ce.repo

在这里插入图片描述

34.如图,查看可以安装的docker版本

yum list docker-ce --showduplicates | sort -r

在这里插入图片描述

35.如图,安装指定版本25.0.3,或者安装最新版本,我这边安装最新版本

安装指定版本:yum install docker-ce-3:25.0.3-1.el9

yum install docker-ce-3:25.0.3-1.el9

在这里插入图片描述

安装最新版本:yum install docker-ce

yum install docker-ce

在这里插入图片描述

36.如图,配置 daemon.

这俩根据需要调整,其他一般不动
“insecure-registries”: [“harbor.xinxainghf.com”],
“registry-mirrors”: [“https://docker.xuanyuan.me”]

cat > /etc/docker/daemon.json <<EOF
{"data-root": "/data/docker","exec-opts": ["native.cgroupdriver=systemd"],"log-driver": "json-file","log-opts": {"max-size": "100m","max-file": "100"},"insecure-registries": ["harbor.xinxainghf.com"],"registry-mirrors": ["https://docker.xuanyuan.me"]
}
EOF
mkdir -p /etc/systemd/system/docker.service.d

在这里插入图片描述

37.如图,重启docker服务,查看docker版本

systemctl daemon-reload && systemctl restart docker && systemctl enable docker
docker version

在这里插入图片描述

38.docker安装完成,上面这边网卡1没有配置网关

39.重启下系统

reboot

40.如图,拍摄快照,install docker

在这里插入图片描述

41.如图,K8s安装环境准备,一主两从

网络规划
在这里插入图片描述

42.如图,还原快照到justinstall

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

43.如图,从justinstall阶段克隆虚拟机RockyLinux-2,RockyLinux-3

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

44.如图,安装ikuai 32

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

编辑虚拟机 在加一块网卡
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
选择ikuai32的iso镜像
在这里插入图片描述

开机

在这里插入图片描述

输入1,安装ikuai系统到硬盘

在这里插入图片描述
在这里插入图片描述

设置ikuai lan ip

在这里插入图片描述
在这里插入图片描述

192.168.66.200/255.255.255.0

在这里插入图片描述
在这里插入图片描述

esc返回
q退出
再来一个q锁定

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在我们电脑上浏览器访问刚才设置的ip 192.168.66.200,自动跳转到登录界面,默认账号密码 admin admin

在这里插入图片描述
默认要改个密码
在这里插入图片描述
改完确定自动跳转管理页面
在这里插入图片描述

绑定wan

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

至此 软路由搭建好了

接下来让虚拟机通过路由器上网 三台都要操作

我这边的RockyLinux2和RockyLinux3是克隆RockyLinux1的,所以第一块网卡的ip都是66.11,所以这边我们ssh用网卡2的ip来远程做网络配置,如图所示,查看ip可以用 ip addr

ip addr

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

这步是因为默认虚拟机直接操作不能复制,静态还没分配,所以我们就用网卡2的动态ip来先ssh远程连上配置ip

接下来给第一块网卡配上网关 66.200,以及dns,第二块网卡开机不自动连接 三台都要操作

# 网卡配置
# cat /etc/NetworkManager/system-connections/ens160.nmconnection
[ipv4]
method=manual
address1=192.168.66.11/24,192.168.66.200
dns=114.114.114.114;8.8.8.8
# cat /etc/NetworkManager/system-connections/ens192.nmconnection
[connection]
autoconnect=false
#网卡1
vi /etc/NetworkManager/system-connections/ens160.nmconnection

在这里插入图片描述

#网卡2
vi /etc/NetworkManager/system-connections/ens192.nmconnection

在这里插入图片描述

调用 nmcli 重启设备和连接配置 三台都要操作


nmcli d r ens160 
nmcli c r ens160
nmcli d d ens192

然后ssh切换192.168.66.11,ping baidu测试网络连接,可以看到网络通了,而且在ikuai里可以看到主机地址

在这里插入图片描述
在这里插入图片描述
如果在ikuai里没看到,在就终端里ping一下百度,没数据包ikuai列表不一定会显示

三台都配置后,ping百度,可以看到如下,三个节点都连上了

在这里插入图片描述

这边远程写的

这个不执行在前面justinstall快照前执行过了,到时候我看一下怎么整一下,直接一路复制执行

# Rocky 系统软件源更换
sed -e 's|^mirrorlist=|#mirrorlist=|g' \-e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' \-i.bak \/etc/yum.repos.d/[Rr]ocky*.repodnf makecache
# 防火墙修改 firewalld 为 iptables
systemctl stop firewalld
systemctl disable firewalldyum -y install iptables-services
systemctl start iptables
iptables -F
systemctl enable iptables
service iptables save# 禁用 Selinux
setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
grubby --update-kernel ALL --args selinux=0
# 查看是否禁用,grubby --info DEFAULT
# 回滚内核层禁用操作,grubby --update-kernel ALL --remove-args selinux
# 设置时区
timedatectl set-timezone Asia/Shanghai# 关闭 swap 分区
swapoff -a
sed -i 's:/dev/mapper/rl-swap:#/dev/mapper/rl-swap:g' /etc/fstab

修改主机名

# 修改主机名 k8s-master01
hostnamectl  set-hostname k8s-master01
# 修改主机名 k8s-node01
hostnamectl  set-hostname k8s-node01
# 修改主机名 k8s-node02
hostnamectl  set-hostname k8s-node02

在master打开etc hosts文件 把主机名和地址对应的映射一下

192.168.66.11 k8s-master01 m1
192.168.66.12 k8s-node01 n1
192.168.66.13 k8s-node02 n2
192.168.66.13 harbor

在这里插入图片描述

在master机子操作发送给其他2台

scp /etc/hosts root@n2:/etc/hosts

在这里插入图片描述

三台ping一下n1 测试生效

ping n1

安装 ipvs

yum install -y ipvsadm

开启路由转发

echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
sysctl -p

加载 bridge

yum install -y epel-release
yum install -y bridge-utilsmodprobe br_netfilter
echo 'br_netfilter' >> /etc/modules-load.d/bridge.conf
echo 'net.bridge.bridge-nf-call-iptables=1' >> /etc/sysctl.conf
echo 'net.bridge.bridge-nf-call-ip6tables=1' >> /etc/sysctl.conf
sysctl -p

拍了个快照,安装docker k8s前环境准备

安装docker源以及安装docker

yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
yum -y install docker-ce
Installed: 2025-09-23安装的最新版container-selinux-4:2.237.0-1.el9_6.noarch       containerd.io-1.7.27-3.1.el9.x86_64                 docker-buildx-plugin-0.28.0-1.el9.x86_64        docker-ce-3:28.4.0-1.el9.x86_64      docker-ce-cli-1:28.4.0-1.el9.x86_64              docker-ce-rootless-extras-28.4.0-1.el9.x86_64       docker-compose-plugin-2.39.4-1.el9.x86_64       fuse-common-3.10.2-9.el9.x86_64      fuse-overlayfs-1.14-1.el9.x86_64                 fuse3-3.10.2-9.el9.x86_64                           fuse3-libs-3.10.2-9.el9.x86_64                  libslirp-4.4.0-8.el9.x86_64          slirp4netns-1.3.2-1.el9.x86_64                   tar-2:1.34-7.el9.x86_64                            

配置 daemon.

cat > /etc/docker/daemon.json <<EOF
{"data-root": "/data/docker","exec-opts": ["native.cgroupdriver=systemd"],"log-driver": "json-file","log-opts": {"max-size": "100m","max-file": "100"},"insecure-registries": ["harbor.xinxainghf.com"],"registry-mirrors": ["https://docker.xuanyuan.me"]
}
EOF
mkdir -p /etc/systemd/system/docker.service.d

重启docker服务 并且设置开机自启

systemctl daemon-reload && systemctl restart docker && systemctl enable docker

最好reboot

reboot

安装 cri-docker

wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.9/cri-dockerd-0.3.9.amd64.tgz
tar -xf cri-dockerd-0.3.9.amd64.tgz
cp cri-dockerd/cri-dockerd /usr/bin/
chmod +x /usr/bin/cri-dockerd

配置 cri-docker 服务

cat <<"EOF" > /usr/lib/systemd/system/cri-docker.service
[Unit]
Description=CRI Interface for Docker Application Container Engine
Documentation=https://docs.mirantis.com
After=network-online.target firewalld.service docker.service
Wants=network-online.target
Requires=cri-docker.socket
[Service]
Type=notify
ExecStart=/usr/bin/cri-dockerd --network-plugin=cni --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.8
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always
StartLimitBurst=3
StartLimitInterval=60s
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
Delegate=yes
KillMode=process
[Install]
WantedBy=multi-user.target
EOF

添加 cri-docker 套接字

cat <<"EOF" > /usr/lib/systemd/system/cri-docker.socket
[Unit]
Description=CRI Docker Socket for the API
PartOf=cri-docker.service
[Socket]
ListenStream=%t/cri-dockerd.sock
SocketMode=0660
SocketUser=root
SocketGroup=docker
[Install]
WantedBy=sockets.target
EOF

启动 cri-docker 对应服务

systemctl daemon-reload
systemctl enable cri-docker
systemctl start cri-docker
systemctl is-active cri-docker

安装k8s

这个我看视频没执行,改离线操作

#添加 kubeadm yum 源
cat < /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.k8s.io/core:/stable:/v1.29/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.k8s.io/core:/stable:/v1.29/rpm/repodata/repomd.xml.key
exclude=kubelet kubeadm kubectl cri-tools kubernetes-cni
EOF

这个我看视频没执行,改离线操作

这个我看视频不是这行这个,而是改为离线包1.29.2版本kubernetes-1.29.2-150500.1.1.tar.gz
#安装 kubeadm 1.29 版本

yum install -y kubelet-1.29.0 kubectl-1.29.0 kubeadm-1.29.0
systemctl enable kubelet.service

安装离线版,我补充的文档kubernetes-1.29.2-150500.1.1.tar.gz 三台都执行

上传kubernetes-1.29.2-150500.1.1.tar.gz到三台节点

tar -zxvf kubernetes-1.29.2-150500.1.1.tar.gz
cd kubernetes-1.29.2-150500.1.1
yum install -y *
Installed: 安装完成的版本conntrack-tools-1.4.7-2.el9.x86_64          cri-tools-1.29.0-150500.1.1.x86_64           kubeadm-1.29.2-150500.1.1.x86_64                kubectl-1.29.2-150500.1.1.x86_64                kubelet-1.29.2-150500.1.1.x86_64            kubernetes-cni-1.3.0-150500.1.1.x86_64       libnetfilter_cthelper-1.0.0-22.el9.x86_64       libnetfilter_cttimeout-1.0.0-19.el9.x86_64      libnetfilter_queue-1.0.5-1.el9.x86_64       socat-1.7.4.1-5.el9.x86_64                  Complete!

开机自启kubelet

systemctl enable kubelet.service

初始化主节点 只在主节点执行

这边用的是cri-docker运行时,所以需要加–cri-socket unix:///var/run/cri-dockerd.sock

kubeadm init --apiserver-advertise-address=192.168.66.11 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version 1.29.2 --service-cidr=10.10.0.0/12 --pod-network-cidr=10.244.0.0/16 --ignore-preflight-errors=all --cri-socket unix:///var/run/cri-dockerd.sock

将当前用户配置为可以访问集群,主节点执行

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

查看k8s集群节点状态,可以查看到节点,但是网络插件还没装,所以是NotReady

kubectl get nodes

在这里插入图片描述

work token 过期后,重新申请 在主节点执行

kubeadm token create --print-join-command

worker 加入 因为我们是cri-docker,所以要加–cri-socket unix:///var/run/cri-dockerd.sock

kubeadm join 192.168.66.11:6443 --token 3p3ztx.t55gimgt2sjzzev8 --discovery-token-ca-cert-hash sha256:50f8956145d7fe362748bca6a5a04f3d4dc73f2bbe5bfd3235575fba53d71b9a --cri-socket unix:///var/run/cri-dockerd.sock

再次查看集群节点

kubectl get nodes

在这里插入图片描述

部署网络插件,我用离线方式部署

这个在线安装的不执行

#这个在线安装的不执行
https://docs.tigera.io/calico/latest/getting-started/kubernetes/self-managed-onprem/onpremises#install-calico-with-kubernetes-api-datastore-more-than-50-nodescurl https://raw.githubusercontent.com/projectcalico/calico/v3.26.3/manifests/calico-typha.yaml -o calico.yaml

我们离线操作 文件名是calico.zip,上面的文件是原版需要手动改,离线版本这个是改好的配置文件calico-typha.yaml

上传calico.zip到master节点
在这里插入图片描述

zip解压后有calico-images.tar.gz镜像包,继续解压

unzip calico.zip
cd calico
tar -zxvf calico-images.tar.gz

在这里插入图片描述

docker load -i calico-cni-v3.26.3.tar
docker load -i calico-kube-controllers-v3.26.3.tar
docker load -i calico-node-v3.26.3.tar
docker load -i calico-typha-v3.26.3.tar

在这里插入图片描述

把这四个镜像离线包传到其他节点并导入每个节点

在这里插入图片描述

在master操作

cd /root/calico
scp -r calico-images root@n1:/root
scp -r calico-images root@n2:/root

在node操作 在这里插入图片描述

cd calico-images
docker load -i calico-cni-v3.26.3.tar
docker load -i calico-kube-controllers-v3.26.3.tar
docker load -i calico-node-v3.26.3.tar
docker load -i calico-typha-v3.26.3.tar

在这里插入图片描述

然后再master节点 执行 calico-typha.yaml 把这个部署文件应用在当前集群上,这个文件已经改过了,禁用ipip

# 修改为 BGP 模式
# Enable IPIP
- name: CALICO_IPV4POOL_IPIPvalue: "Always"  #改成Off
#CALICO_IPV4POOL_CIDR	指定为 pod 地址
- name: CALICO_IPV4POOL_CIDRvalue: "10.244.0.0/16"

在这里插入图片描述
在这里插入图片描述

kubectl apply -f calico-typha.yaml

稍等会,kubectl get node 就是节点就是就绪状态了

kubectl get nodes

在这里插入图片描述

获取所有pod 可以看到calico在集群中已经正常部署

kubectl get pod -A

在这里插入图片描述

到此k8s 部署完成,赶紧在三个节点拍快照,k8s v1.29.2安装完成

这部分不执行作为资料参考start

固定网卡(可选)

目标 IP 或域名可达

    - name: calico-nodeimage: registry.geoway.com/calico/node:v3.19.1env:# Auto-detect the BGP IP address.- name: IPvalue: "autodetect"- name: IP_AUTODETECTION_METHODvalue: "can-reach=www.google.com"

kubectl set env daemonset/calico-node -n kube-system IP_AUTODETECTION_METHOD=can-reach=www.google.com

匹配目标网卡

- name: calico-nodeimage: registry.geoway.com/calico/node:v3.19.1env:# Auto-detect the BGP IP address.- name: IPvalue: "autodetect"- name: IP_AUTODETECTION_METHODvalue: "interface=eth.*"

排除匹配网卡

- name: calico-nodeimage: registry.geoway.com/calico/node:v3.19.1env:# Auto-detect the BGP IP address.- name: IPvalue: "autodetect"- name: IP_AUTODETECTION_METHODvalue: "skip-interface=eth.*"

CIDR

- name: calico-nodeimage: registry.geoway.com/calico/node:v3.19.1env:# Auto-detect the BGP IP address.- name: IPvalue: "autodetect"- name: IP_AUTODETECTION_METHODvalue: "cidr=192.168.200.0/24,172.15.0.0/24"

四、修改kube-proxy 模式为 ipvs

kubectl edit configmap kube-proxy -n kube-system

mode: ipvskubectl delete pod -n kube-system -l k8s-app=kube-proxy

这部分不执行作为资料参考end

http://www.dtcms.com/a/410184.html

相关文章:

  • 意力机制 | 添加Deformable-LKA可变形大核注意力
  • Android Automotive OS架构
  • 企业网站访问量的第一来源是( )上海兼职网站制作
  • 《AI协同开发深潜:从架构迷雾到系统澄明的实战路径》
  • 专业的营销型网站建设企业方案项目策划书怎么写
  • 光环状态类型释义
  • Doris数据库-常用功能
  • MySQL中的空间碎片率计算分析
  • Python爬虫实战:获取东方财富网游戏板块数据与市场趋势分析
  • 【深度学习计算机视觉】07:单发多框检测(SSD)
  • 提取网站子页面邮箱文化馆建设网站
  • 大数据安全解决方案(PPT)
  • AI大模型学习(14)AI 小白入门!用 OpenCV+Python 打造人体姿态识别系统,超详细教程来了
  • 使用 Azure AD 实现认证与权限管理:原理解析与操作指南
  • 莆田网站建设收费标准广州金山大厦 网站建设
  • Lombok注解使用无效的情况(未能获得后端数据)
  • 网络原理-网络层
  • Flink 容错从状态后端到 Exactly-Once
  • 怎样做门窗网站网站首页被k还有救吗
  • 一体化DevOps平台选型新思维:如何打破研发与运维的壁垒?
  • 2025年14款DevOps理念的项目管理软件促进高效协同
  • 【音视频】pjsua2库:Account 用户注册详解
  • (Arxiv-2025)Lynx:迈向高保真个性化视频生成
  • 学习项目movie-web:构建本地电影、电视视频中心
  • QT音视频
  • Docker 安装 canal 详细步骤
  • 电子信息工程专业课《电路原理》:电子信息世界的基石与语言
  • 中学生做网站的软件狮山公司网站建设
  • 了解Django模型,从基础到实战
  • 【FPGA+DSP系列】——(1)CCS创建工程+LED点亮