热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

K8S网络插件calicoBGPReflector

1、calicoctl客户端工具calicoctl管理工具能够与calicodatastore进行交互,用于管理calico系统的各种资源。获取地址:https:github.co

1、calicoctl客户端工具

calicoctl管理工具能够与calico datastore进行交互,用于管理calico系统的各种资源。

获取地址:https://github.com/projectcalico/calicoctl/releases

[root@kube-master01 calico]# mv calicoctl-linux-amd64 /usr/bin

[root@kube-master01 calico]# chmodd +x /usr/bin/calicoctl 

也可以应用和编辑calico相关的资源

如查看POD网段使用情况:

2、BGP Reflector

默认设置下,所有节点均为对等节点,相互交换路由信息,在网络规模较小时影响不大,但是当网络规模扩大,一个节点 的路由会广播到其他所有节点,会造成性能瓶颈。

 

BGP Reflector可以将节点设置为BGP Reflector,各节点只需和这个节点建立BGP对等体,相互通告路由,大量减少通告路由。

2.1、配置反射器

如将kube-node01作为BGP Reflector

配置BGP Reflector: 编辑calico Node资源

apiVersion: projectcalico.org/v3
kind: Node
metadata:
labels:
route-reflector: true #标签,后面的bgppeer根据该标签选择,bgp Reflector
name: kube-node01 #节点名城
spec:
bgp:
ipv4Address: 10.0.2.201/24 #node节点IP
ipv4IPIPTunnelAddr: 10.200.2.0 #tunl0接口ip
routeReflectorClusterID: 1.1.1.1 #反射器标志

View Code

 配置BPGPeer,同一BGP路由集群中的各节点,都需要成为Reflector的对等节点。

kind: BGPPeer
apiVersion: projectcalico.org/v3
metadata:
name: bgppeer
spec:
nodeSelector: all() #所有节点
peerSelector: route-reflector=="true"

View Code

[root@kube-master01 calico]# calicoctl apply -f node.yaml

[root@kube-master01 calico]# cat bgppeer.yaml

可以看到,每个节点与kube-node01(10.0.2.201)都建立了对等体关系

2.2、配置了BGP Reflector和BGPPeer,可以将原来的node-to-node的网络对等关系关闭,默认是开启的

apiVersion: projectcalico.org/v3
kind: BGPConfiguration
metadata:
name: default
spec:
logSeverityScreen: Info #日志级别
nodeToNodeMeshEnabled: false #关闭默认的node-to-node网络
asNumber: 64000 #AS ID

View Code

[root@kube-master01 calico]# calicoctl apply -f default-bgpconfiguration.yaml  

看到其余节点只与kube-node01建立了对等关系

3、检查路由和访问

路由和访问均正常

由于只配置了一个BGP Reflector,这个节点如果出现异常将导致节点到其他节点POD网络的路由消失,例如关闭kube-node01后,

因此最好根据规模,配置两个以上的BGP Reflector,保证高可用

 

 

 



推荐阅读
  • Git应用技巧与实战经验分享
    在使用 Git 进行代码管理时,有时会遇到无法访问 `https://github.com` 仓库的问题,具体表现为 OpenSSL SSL_read 错误,连接被重置(errno 10054)。本文将深入探讨这一问题的成因,并分享多种解决方法,包括检查网络配置、更新 Git 版本以及调整 SSL 设置等,帮助开发者有效应对类似问题。此外,文章还将介绍一些实用的 Git 技巧和实战经验,提升代码管理和协作效率。 ... [详细]
  • 在更换电脑后,使用 Git Bash 运行 Python 时可能会遇到找不到 Python 解释器的问题。本文详细介绍了如何在 Windows 环境下通过 Bash Shell 调用不同版本的 Python,并成功运行 SRSPlayer HTTP 服务器。具体步骤包括配置环境变量、验证 Python 版本以及启动服务器的方法。 ... [详细]
  • 在本篇学习指南中,我们将探讨 Spring Cloud 2020 版本中的技术选型和版本选择策略。具体来说,我们将详细介绍如何在项目中选用 Spring Boot 和 Spring Cloud 的最佳组合。本文以 Spring Boot 2.2.2 为例,结合实际应用场景,提供详细的配置和使用建议,帮助开发者更好地理解和应用这些框架。此外,我们还将讨论不同版本之间的兼容性和升级路径,确保项目能够平稳过渡到最新版本。 ... [详细]
  • 深入剖析Java中SimpleDateFormat在多线程环境下的潜在风险与解决方案
    深入剖析Java中SimpleDateFormat在多线程环境下的潜在风险与解决方案 ... [详细]
  • 在List和Set集合中存储Object类型的数据元素 ... [详细]
  • SIoU Loss 的原理详解及代码实现分析
    本文详细解析了 SIoU Loss 的原理及其在边界框回归任务中的优势,并通过代码实现对其性能进行了深入分析。SIoU Loss 作为一种改进的损失函数,能够更有效地优化目标检测模型的边界框回归效果,提升模型的准确性和鲁棒性。文中还提供了具体的代码示例,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 优化后的标题:深入探讨网关安全:将微服务升级为OAuth2资源服务器的最佳实践
    本文深入探讨了如何将微服务升级为OAuth2资源服务器,以订单服务为例,详细介绍了在POM文件中添加 `spring-cloud-starter-oauth2` 依赖,并配置Spring Security以实现对微服务的保护。通过这一过程,不仅增强了系统的安全性,还提高了资源访问的可控性和灵活性。文章还讨论了最佳实践,包括如何配置OAuth2客户端和资源服务器,以及如何处理常见的安全问题和错误。 ... [详细]
  • Flutter 屏幕适配解决方案与最佳实践
    Flutter 屏幕适配解决方案与最佳实践 ... [详细]
  • 在Mac系统中安装Hexo时,如果遇到“Error: Cannot find module './build/Release/DTraceProviderBindings’”错误,可以通过以下步骤解决:首先确保已正确安装Node.js和npm,然后尝试运行`npm install hexo --no-optional`。若问题依然存在,建议检查环境变量配置,并参考Hexo官方文档进行进一步排查。 ... [详细]
  • 在 Axublog 1.1.0 版本的 `c_login.php` 文件中发现了一个严重的 SQL 注入漏洞。该漏洞允许攻击者通过操纵登录请求中的参数,注入恶意 SQL 代码,从而可能获取敏感信息或对数据库进行未授权操作。建议用户尽快更新到最新版本并采取相应的安全措施以防止潜在的风险。 ... [详细]
  • 体积小巧的vsftpd与pureftpd Docker镜像在Unraid系统中的详细配置指南:支持TLS加密及IPv6协议
    本文详细介绍了如何在Unraid系统中配置体积小巧的vsftpd和Pure-FTPd Docker镜像,以支持TLS加密和IPv6协议。通过这些配置,用户可以实现安全、高效的文件传输服务,适用于各种网络环境。配置过程包括镜像的选择、环境变量的设置以及必要的安全措施,确保了系统的稳定性和数据的安全性。 ... [详细]
  • 在安装 iOS 开发所需的 CocoaPods 时,用户可能会遇到多种问题。其中一个常见问题是,在执行 `pod setup` 命令后,系统无法连接到 GitHub 以更新 CocoaPods/Specs 仓库。这可能是由于网络连接不稳定、GitHub 服务器暂时不可用或本地配置错误等原因导致。为解决此问题,建议检查网络连接、确保 GitHub API 限制未被触发,并验证本地配置文件是否正确。 ... [详细]
  • Git核心命令全解析:掌握日常开发必备技能
    本文深入解析了 Git 的核心命令,帮助开发者掌握日常开发中的必备技能。从 `git init` 命令开始,介绍了如何将当前目录转变为 Git 可管理的仓库。接着详细讲解了 `git add` 命令的使用方法,包括如何将文件(如 `readme.txt`)添加到暂存区,以便在后续提交时进行版本控制。此外,还探讨了其他关键命令,如 `git commit` 和 `git push`,以确保代码变更能够安全地保存和同步到远程仓库。通过这些命令的综合应用,开发者可以更加高效地管理和协作项目。 ... [详细]
  • 本文详细介绍了在 Android 7.1 系统中调整屏幕分辨率和默认音量设置的方法。针对系统默认音量过大的问题,提供了具体的步骤来降低系统、铃声、媒体和闹钟的默认音量,以提升用户体验。此外,还涵盖了如何通过系统设置或使用第三方工具来优化屏幕分辨率,确保设备显示效果更加清晰和流畅。 ... [详细]
  • 从用户转型为开发者:一场思维升级的旅程 | 专访 StarRocks Committer 周威
    从用户转变为开发者,不仅是一次角色的转换,更是一场深刻的思维升级之旅。本次专访中,StarRocks Committer 周威分享了他如何在这一过程中逐步提升技术能力与思维方式,为开源社区贡献自己的力量。 ... [详细]
author-avatar
谢丹逝梦
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有