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*.repo
    
dnf makecache
# 防火墙修改 firewalld 为 iptables
systemctl stop firewalld
systemctl disable firewalld

yum -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-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
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-nodes

curl 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_IPIP
  value: "Always"  #改成Off

#CALICO_IPV4POOL_CIDR	指定为 pod 地址
- name: CALICO_IPV4POOL_CIDR
  value: "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-node
      image: registry.geoway.com/calico/node:v3.19.1
      env:
        # Auto-detect the BGP IP address.
        - name: IP
          value: "autodetect"
        - name: IP_AUTODETECTION_METHOD
          value: "can-reach=www.google.com"

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

匹配目标网卡

复制代码
- name: calico-node
  image: registry.geoway.com/calico/node:v3.19.1
  env:
    # Auto-detect the BGP IP address.
    - name: IP
      value: "autodetect"
    - name: IP_AUTODETECTION_METHOD
      value: "interface=eth.*"

排除匹配网卡

复制代码
- name: calico-node
  image: registry.geoway.com/calico/node:v3.19.1
  env:
    # Auto-detect the BGP IP address.
    - name: IP
      value: "autodetect"
    - name: IP_AUTODETECTION_METHOD
      value: "skip-interface=eth.*"

CIDR

复制代码
- name: calico-node
  image: registry.geoway.com/calico/node:v3.19.1
  env:
    # Auto-detect the BGP IP address.
    - name: IP
      value: "autodetect"
    - name: IP_AUTODETECTION_METHOD
      value: "cidr=192.168.200.0/24,172.15.0.0/24"

四、修改kube-proxy 模式为 ipvs

kubectl edit configmap kube-proxy -n kube-system

复制代码
mode: ipvs

kubectl delete pod -n kube-system -l k8s-app=kube-proxy

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

相关推荐
chuxinweihui2 小时前
Socket编程UDP
linux·网络·网络协议·udp·通信
小闫BI设源码2 小时前
Docker的介绍
运维·docker·容器·数据持久化·端口映射·卷挂载·配置外挂
北京耐用通信2 小时前
神秘魔法?耐达讯自动化Modbus TCP 转 Profibus 如何为光伏逆变器编织通信“天网”
网络·人工智能·网络协议·网络安全·自动化·信息与通信
Ronin3053 小时前
【Linux网络】Socket编程:UDP网络编程实现Echo Server
linux·网络·udp·网络通信·socket编程
霖.243 小时前
service的两种代理实现
linux·服务器·容器·kubernetes
Lin_Aries_04213 小时前
基于 GitLab 的自动化镜像构建
linux·运维·docker·容器·自动化·gitlab
伐尘3 小时前
[群晖NAS] 群晖Docker安装gitlab + ipv6 远程访问
docker·gitlab·群晖·nas
霖.243 小时前
K8s实践中的重点知识
linux·云原生·kubernetes
在路上看风景4 小时前
1.9 IP地址和Mac地址
网络