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

【K8s】专题十五(4):Kubernetes 网络之 Calico 插件安装、切换网络模式、卸载

本文内容均来自个人笔记并重新梳理,如有错误欢迎指正!

如果对您有帮助,烦请点赞、关注、转发、订阅专栏!


专栏订阅入口

| 精选文章 | Kubernetes | Docker | Linux | 羊毛资源 | 工具推荐 |


往期精彩文章

【Docker】(全网首发)Kylin V10 下 MySQL 容器内存占用异常的解决方法

【Docker】(全网首发)Kylin V10 下 MySQL 容器内存占用异常的解决方法(续)

【K8s】专题十五(3):Kubernetes 网络之 Calico 插件理论


目录

一、安装流程

1、安装 Tigera Operator

2、安装 Calico

二、切换网络模式

1、切换为 IPIP 模式(默认模式)

2、切换为 VXLAN 模式

3、切换为 BGP 模式

4、切换为 CrossSubnet 模式

三、卸载流程

1、删除资源对象

2、删除虚拟网卡

3、删除 CNI 配置文件

4、重启 kubelet 服务


前文【K8s】专题十五(3):Kubernetes 网络之 Calico 插件理论 对 Calico 插件的相关理论进行了精简介绍,本文将继续介绍通过 Tigera Operator 安装 Calico 插件的流程,以及 Calico 如何切换网络模式、Calico 卸载流程。


一、安装流程
1、安装 Tigera Operator

Tigera Operator 通过将 Kubernetes API 封装为 CRD(Custom Resource Definition)对象,为 Calico 提供生命周期管理。

kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.29.0/manifests/tigera-operator.yaml# 说明:由于 CRD 包较大,若使用 kubectl apply 可能会超出请求限制,需要使用 kubectl create 或 kubectl replace

2、安装 Calico
cat > custom-resources.yaml <<EOF
---
apiVersion: operator.tigera.io/v1
kind: Installation
metadata:name: default
spec:calicoNetwork:ipPools:- name: default-ipv4-ippoolcidr: 10.10.0.0/16blockSize: 26                 # 默认配置encapsulation: IPIP           # 默认配置natOutgoing: Enabled          # 默认配置nodeSelector: all()           # 默认配置nodeAddressAutodetectionV4:interface: "eth.*|en.*"bgp: EnabledhostPorts: EnabledlinuxDataplane: IptablesmultiInterfaceMode: None
---
apiVersion: operator.tigera.io/v1
kind: APIServer
metadata:name: default
spec: {}EOFkubectl create -f custom-resources.yaml# 说明:默认在 calico-system 命名空间中创建 Installation 类型、APIServer 类型对象

custom-resources.yaml 参数说明文档:
https://docs.tigera.io/calico/latest/reference/installation/api#operator.tigera.io/v1.Installation
https://docs.tigera.io/archive/v3.21/reference/installation/api#operator.tigera.io/v1.InstallationSpec


二、切换网络模式
1、切换为 IPIP 模式(默认模式)
# 修改 Calico 配置
kubectl edit ippool
1)将 ipipMode 改为 Always(即启用 IPIP 模式)
2)将 vxlanMode 改为 Never(即禁用 VXLAN 模式)# 重启 calico-node
kubectl rollout restart deploy calico-node -n calico-system# 效果验证
route -n         # IPIP 模式下会出现 tunl0 设备

2、切换为 VXLAN 模式
# 修改 Calico 配置
kubectl edit ippool
1)将 ipipMode 改为 Never(即禁用 IPIP 模式)
2)将 vxlanMode 改为 Always(即启用 VXLAN 模式)# 重启 calico-node
kubectl rollout restart deploy calico-node -n calico-system# 效果验证
route -n         # VXLAN 模式下会出现 vxlan.calico 设备

3、切换为 BGP 模式
# 修改 Calico 配置
kubectl edit ippool
1)将 ipipMode 改为 Always(即禁用 IPIP 模式)
2)将 vxlanMode 改为 Always(即禁用 VXLAN 模式)# 重启 calico-node
kubectl rollout restart deploy calico-node -n calico-system# 效果验证
route -n         # BGP 模式下不会出现 tunl0 或 vxlan.calico 设备

4、切换为 CrossSubnet 模式
# 修改 Calico 配置
kubectl edit ippool
1)将 ipipMode 或 vxlanMode 改为 CrossSubnet
2)将 改为 Always(即启用 VXLAN 模式)# 重启 calico-node
kubectl rollout restart deploy calico-node -n calico-system🔔 CrossSubnet 模式:此为混合模式,同网段通信使用 BGP 模式,跨网段通信使用 IPIP 或 VXLAN 模式


三、卸载流程
1、删除资源对象
kubectl delete -f custom-resources.yaml
kubectl delete -f tigera-operator.yaml

2、删除虚拟网卡
# 在所有主机上执行
modprobe -r ipip      # 删除 IPIP 模式虚拟网卡
modprobe -r vxlan     # 删除 VXLAN 模式虚拟网卡

3、删除 CNI 配置文件
# 在所有主机上执行
rm -rf /var/lib/cni/ && rm -rf /etc/cni/net.d/*

4、重启 kubelet 服务
# 在所有主机上执行
systemctl restart kubelet

http://www.lryc.cn/news/491382.html

相关文章:

  • Unity类银河战士恶魔城学习总结(P141 Finalising ToolTip优化UI显示)
  • c++(入门)
  • 【优选算法】前缀和
  • Spring Bean 的生命周期详解
  • MySQL【知识改变命运】12
  • shell编程(完整版)
  • 数字逻辑(一)——导论
  • 量化交易系统开发-实时行情自动化交易-4.4.做市策略
  • 《线性代数的本质》
  • Gbase8s 允许内置用户创建用户以及创建只读权限用户以及利用角色管理普通用户权限
  • 24/11/25 视觉笔记 深度传感器和手势识别
  • 迄今为止的排序算法总结
  • HTML和CSS 表单、表格练习
  • H5流媒体播放器EasyPlayer.js网页直播/点播播放器如果H.265视频在播放器上播放不流畅,可以考虑的解决方案
  • Http 转 https 中 Nginx 的详细配置过程
  • 【测试工具JMeter篇】JMeter性能测试入门级教程(二)出炉,测试君请各位收藏了!!!
  • Otter 安装流程
  • 一文学会Golang里拼接字符串的6种方式(性能对比)
  • 【笔记】Linux下编译Python3.10.15为动态库同时正确处理OpenSSL3依赖
  • Go语言获取客户端真实IP
  • 大模型论文速递(11.23-11.25)
  • 维护在线重做日志(二)
  • .net core MVC入门(一)
  • 802.11协议
  • 【Linux】线程ID与互斥、同步(锁、条件变量)
  • Android 13 编译Android Studio版本的Launcher3
  • burp功能介绍
  • Android12 的 Vold梳理
  • [pdf,epub]162页《分析模式》漫谈合集01-35提供下载
  • Vue2教程003:Vue指令之v-bind和v-for