Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >BGP 模式下 Calico 与 MetalLB 如何结合

BGP 模式下 Calico 与 MetalLB 如何结合

作者头像
云原生小白
发布于 2022-06-06 00:54:26
发布于 2022-06-06 00:54:26
2K01
代码可运行
举报
文章被收录于专栏:LokiLoki
运行总次数:1
代码可运行

最近我司业务扩展在机房新开了一个区域,折腾了一段时间的 Calico BGP,为了能将整个过程梳理得更简单明了,我还是决定将这个过程记录下来。不管是对当下的总结还是未来重新审视方案都是值得的。大家都知道,云原生下的网络架构在 Kubernetes 里可以算是百花齐放,各有所长,这无形中也导致网络始终是横在广大 K8S 爱好者面前迈向高阶管理的几座大山之一。通常大家在公有云上使用厂家提供的 CNI 组件可能还感受不到其复杂,但一旦要在 IDC 自建集群时,就会面临 Kubernetes 网络架构选型的问题。Calico 作为目前 Kubernetes 上用途最广的 Kubernetes CNI 之一,自然也有很多追随者。而本篇便是在自建机房内 BGP 组网下的一次总结。

关于 CNI 选型

云原生 CNI 组件这么多,诸如老牌的 Flannel、Calico、WeaveNet、Kube-Router 以及近两年兴起的 Antrea、 Kube-OVN 和 Cilium。它们都在各自的场景下各有所长,在选择前我们可以先对其做一个简单的功能性的比较:

Flannel

Calico

Cilium

WeaveNet

Antrea

Kube-OVN

部署模式

DaemonSet

DaemonSet

DaemonSet

DaemonSet

DaemonSet

DaemonSet

包封装与路由

VxLAN

IPinIP,BGP,eBPF

VxLAN,eBPF

VxLAN

Vxlan

Vlan/Geneve/BGP

网络策略

No

Yes

Yes

Yes

Yes

Yes

存储引擎

Etcd

Etcd

Etcd

No

Etcd

Etcd

传输加密

Yes

Yes

Yes

Yes

Yes

No

运营模式

社区

Tigera

社区

WeaveWorks

VMware

灵雀云

说明:传输加密主要以支持 WireGuard 或 IPSec 来评估

此外关于CNI 性能部分,我们也可以透过一份 2020 年的 CNI 性能测试报告《Benchmark results of Kubernetes network plugins (CNI) over 10Gbit/s network》 来选择。

上述性能测试原始数据:https://docs.google.com/spreadsheets/d/12dQqSGI0ZcmuEy48nA0P_bPl7Yp17fNg7De47CYWzaM/edit?ouid=118246426051561359914&usp=sheets_home&ths=true

为什么选择 Calico

在对我司机房新区域的网络选型上,我们最终选择了 Calico 作为云端网络解决方案,在这里我们简单阐述下为什么选择 Calico 的几点原因:

  • 支持 BGP 广播,Calico 通过 BGP 协议广播路由信息,且架构非常简单。在 kubernetes 可以很容易的实现 mesh to mesh 或者 RR 模式,在后期如果要实现容器跨集群网络通信时,实现也很容易。
  • Calico配置简单,且配置都是通过 Kubernetes 中的 CRD 来进行集中式的管理,通过操作 CR 资源,我们可以直接对集群内的容器进行组网和配置的实时变更
  • 丰富的功能及其兼容性,考虑到集群内需要与三方应用兼容,例如配置多租户网络、固定容器 IP 、网络策略等功能又或者与 Istio、MetalLB、Cilium 等组件的兼容,Calico 的的表现都非常不错
  • 高性能, Calico 的数据面采用 HostGW 的方式,由于是一个纯三方的数据通信,所以在实际使用下性能和主机资源占用方面不会太差,至少也能排在第一梯队

结合我司机房新区域采购的是 H3C S9 系列的交换机,支持直接在接入层的交换机侧开启路由反射器。所以最终我们选择Calico 并以 BGP RR 的模式作为 Kubernetes 的 CNI 组件便水到渠成。

关于 MetalLB

在讲 MetalLB 之前,先回顾下应用部署在 Kubernetes 中,它的下游服务是如何访问的吧。通常有如下几种情况

集群内请求:

直接通过 Kubernetes 的 Service 访问应用。

集群外请求:

  1. 通过 NodePort 在主机上以 nat 方式将流量转发给容器,优点配置简单且能提供简单的负载均衡功能, 缺点也很明显下游应用只能通过主机地址+端口来做寻址
  2. 通过 Ingress-nginx 做应用层的 7 层转发,优点是路由规则灵活,且流量只经过一层代理便直达容器,效率较高。缺点是 ingress-nginx 本身的服务还是需要通过 NodePort 或者 HostNetwork 来支持

可以看到在没有外部负载均衡器的引入之前,应用部署在 kubernetes 集群内,它对南北向流量的地址寻址仍然不太友好。也许有的同学就说了,我在公有云上使用 Kubernetes 时,将 Service 类型设置成 LoadBalancer,集群就能自动为我的应用创建一条带负载均衡器地址的 IP供外部服务调用,那我们自己部署的 Kubernetes 集群有没有类似的东西来实现呢?

当然有!MetalLB 就是在裸金属服务器下为 Kubernetes 集群诞生的一个负载均衡器项目。

事实上当然不止 MetalLB,开源界里面还有其他诸如PureLB、OpenELB等负载均衡产品。不过本文旨在采用 BGP 协议来实现负载均衡,所以重点会偏向 MetelLB

简单来说,MetalLB包含了两个组件,Controler用于操作 Service 资源的变更以及IPAM。Speaker用于外广播地址以及 BGP 的连接。它支持两种流模式模式即:layer2BGP

  • Layer2 模式

又叫ARP/NDP模式,在此模式下,Kubenretes集群中运行 Speaker 的一台机器通过 leader 选举,获取 Service 的 LoadBalancer IP 的所有权,并使用 ARP 协议将其 IP 和 MAC 广播出去,以使这些 IP 能够在本地网络上可访问。使用 Layer2 的模式对现有网络并没有太多的要求,甚至不需要路由器的支持。不过缺点也显而易见,LoadBalancer IP 所在的 Node 节点承载了所有的流量,会产生一定的网络瓶颈。

此外,我们可以简单的将 Layer2 模式理解为与 Keepalived 原理相似,区别仅为 Layer2 的lead 选举并不是使用 VRRP 组播来通信。

  • BGP 模式

MabelLB 在 BGP 模式下,集群中的所有运行 Speaker 的主机都将与上层交换机建立一条BGP 连接,并广播其 LoadBalancer 的IP 地址。优点是真正的实现了网络负载均衡,缺点就是配置相对而言要复杂许多,且需上层路由器支持BGP。

MetalLB with Calico

通过上述的介绍,你可能发现了一个问题:在 BGP 模式的场景下,Calico 和 MetalLB 都需要运行一个 DaemonSet 的 bgp 客户端在主机上与上层路由器建立 bgp peer,在 Calico 中是 Bird ,MetalLB 中是 Speaker。这就会引出来它们使用上的一些问题。

BGP 只允许每个节点建立一个会话,如果使用 Calico 并建立了 BGP 路由器会话,MetalLB 无法建立自己的会话。因为这条 BGP会话会被路由器认为是相冲突而拒绝连接

事实上我们传统的 Fabric 网络在运用上述方案也遇到此问题,MetalLB 社区也给了 3 个方案来解决:

  • BGP 与 Tor 交换机连接 此方案即 MetalLB 放弃在 Node 节点上部署 Speaker 服务,关于主机上 BGP 路由的广播统一交给 Calico Bird 处理。这也是 Calico 社区建议采取的方案。
  • BGP 与 Spine 交换机连接 此方案让 MetalLB Speaker 的 BGP Peer 绕过 Tor 路由,直达上层核心路由器。虽然解决了 BGP 连接问题,但是额外带来了配置的复杂性,以及损失了BGP 连接的扩展性,在大型的数据中心是不被认可的!
  • 开启 VRF-虚拟路由转发 如果你的网络硬件支持 VRF(虚拟路由转发),那就可以将通过虚拟化的方式分别为 Calico Bird 和 MetalLB Speaker 创建独立的路由表,并建立 BGP 连接。然后再在两个 VRF 内部之间进行路由

此方案理论上可行,但笔者的数据中心并没有支持 VRF 功能的路由器,且受限于不同网络设备厂家的实现方式不同而带来的操作差异也不可控。所以具体的实现还需每个用户自行决定。

具体操作

前面谈了大段话关于 Calico 和 MetalLB 的使用,本节我们就简单的部署与配置来完成前面的所说的内容。

网络上面的一些基本信息:

规划CIDR

用途

关联服务

10.52.1.0/24

Kubernetes 主机物理网络,同时也是 IBGP 连接的承载网络

Kubernetes,Calico

10.59.0.0/16

Kubernetes 容器默认使用的 IP 地址池

Calico

10.96.0.0/12

Kubenretes Service 内部地址池,即 ClusterIP 区域

Kubernetes

10.60.0.0/21

Kubenretes Service 负载均衡器地址池,即 LoadBalancer IP 区域

Calico, MetalLB

IDC 中心的 BGP 信息

BGP

信息

AS 域

65001

BGP peer

10.52.1.253,10.52.1.254

Calico 部分
  • 下载并部署 Calico Manifest 文件,并将文件内容中关于 POD CIDR修改为自己环境下的配置
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
curl https://projectcalico.docs.tigera.io/manifests/calico.yaml -O

----
containers:
- image: harbor.cloudminds.com/kubegems/calico-node:v3.22.1
  name: calico-node
  env:
  - name: CALICO_IPV4POOL_CIDR
    value: 10.59.0.0/16
  • 配置 BGP Peering,可根据机房规模选择 Global BGP PeerPer-Node Peer。它们之间区别为Global BGP Peer的连接拓扑呈星状,所有的节点都在一个 AS 域内。Per-Node Peer则可以利用主机标签进行灵活的接入。

这里由于我们服务器规模不大(<50)可直接采用全局 BGP 连接模式。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
apiVersion: projectcalico.org/v3
kind: BGPPeer
metadata:
  name:  tor-router-253
spec:
  peerIP: 10.52.1.253
  asNumber: 65001
---
apiVersion: projectcalico.org/v3
kind: BGPPeer
metadata:
  name:  tor-router-254
spec:
  peerIP: 10.52.1.254
  asNumber: 65001

考虑到 BGP 连接的冗余,实际在使用上,我们可以创建两个 BGP Peer,防止路由器单点故障。

如果你需要按照机架来划分 AS 域的话,可以采用 Per-Node Peer 模式,通过 nodeSelector 来实现个性化的连接配置。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
apiVersion: projectcalico.org/v3
kind: BGPPeer
metadata:
  name: rack1-tor
spec:
  peerIP: 192.20.30.40
  asNumber: 64567
  nodeSelector: rack == 'rack-1'
  • 禁用 Calico NodeToNodeMesh
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
calicoctl patch bgpconfiguration default -p '{"spec": {"nodeToNodeMeshEnabled": false}}'
  • 禁用 ipipMode 和vxlan Mode
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
apiVersion: projectcalico.org/v3
kind: IPPool
metadata:
  name: default-ipv4-ippool
spec:
  allowedUses:
  - Workload
  blockSize: 26
  cidr: 10.59.0.0/16
  ipipMode: Never
  natOutgoing: true
  nodeSelector: all()
  vxlanMode: Never

此时,我们使用calicoctl 来查看 BGP 状态,如果 STATE 为 up,就代表集群内主机的 BGP 连接正常。

MetalLB 部分
  • Kube-Proxy 采用 IPVS 的话,需开启严格的 ARP 学习设置。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl edit configmap -n kube-system kube-proxy

----
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
mode: "ipvs"
ipvs:
  strictARP: true

如果多台用户主机同时向设备发送大量ARP报文,或者攻击者向设备发送伪造的ARP报文,会出现以下问题:

  • 处理 ARP 报文会消耗大量 CPU 资源。设备学习到很多无效的ARP表项,耗尽了ARP表项资源,导致设备无法学习到来自授权用户的ARP报文的ARP表项,造成用户的通信被中断。
  • 设备收到伪造的ARP报文后,错误地修改了ARP表项。造成用户无法相互通信。

为避免上述问题,开启 strictARP 后,设备对发送的ARP请求报文只学习ARP回复报文的ARP表项。这样,设备就可以防御大部分的ARP攻击。

  • 下载并安装 MetalLB
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.12.1/manifests/namespace.yaml
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.12.1/manifests/metallb.yaml

注意,由于我们不需要 MetalLB 的 Speaker 服务,所以当 MetalLB Controller 运行成功后,可以将 speaker 服务删除。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl delete daemonset speaker -n metallb-system
  • 配置 MetalLB 中需要广播的 BGP 地址范围,也就是后面 Kubernetes Service 中 LoadBalancer 的地址。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
apiVersion: v1
kind: ConfigMap
metadata:
  namespace: metallb-system
  name: config
data:
  config: |
    address-pools:
    - name: default
      protocol: bgp
      addresses:
      - 10.60.0.0/21
Calico 广播 Kubernetes 服务地址(包含 MetalLB 地址)

得益于 BGP 的使用,Calico 可以很容易的将 Kubernetes 集中的 Service IP 地址像 Pod IP一样发布到内网。通过使用ECMP(等价多路径路由)来实现真正的负载均衡。

通常Kubenretes中 Service 中的地址涉及到 3 种类型,即 ClusterIPExternalIP LoadBalancerIP

考虑到我们仅需要将有限的服务通过LoadBalancerIP方式暴露出来。(虽然直接发布 ClusterIP 很酷,但它在某些网络限制严格的场景下是不被接受的)。所以对 Calico 的 BGP 仅需如下配置。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
apiVersion: projectcalico.org/v3
kind: BGPConfiguration
metadata:
  name: default
spec:
  logSeverityScreen: Info
  nodeToNodeMeshEnabled: false
  asNumber: 65001
  serviceLoadBalancerIPs:
  - cidr: 10.60.8.0/21

如果我们需要将 Kubernetes 的控制节点从广播中排除开来,那么仅需要为控制平面的主机添加如下标签即可:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl label node control-plane-01 node.kubernetes.io/exclude-from-external-load-balancers=true
路由器

原则上说,在路由器上开启 BGP 协议是上述所有操作中最先应该开始的工作。但由于每位读者所在环境中支持BGP 的交换机厂家不尽相同,所以我将此部分挪到最后来说明。我并不是网络上的专家,这里我只对我们 Calico BGP 网络的架构做一个简单说明,读者在规划自己的 BGP 网络时,可与网络工程师一起合作完成。

最终当交换机上的路由反射器和 BGP 邻居创建完成后,Calico 的 Bird 服务便能与反射器建立对等连接,此时连接的状态如下

路由表信息如下

可以看到此时,容器的子网路由都明确了下一跳的主机地址,以及公布的LoadBalancer CIRD下一跳地址。

关于 EMCP

等价多路径路由ECMP(Equal-Cost Multi-Path routing)实现了等价多路径负载均衡和链路备份的目的。多用于 Layer 3 的负载均衡,用于解决“负载均衡服务器”的单点和扩缩容的问题。既然我们在内部采用了 BGP 网络,当然也可以在路由器上启用此功能。

当启用此功能后,我们在路由表中便可以看到对访问目标地址是LoadBalancer CIRD网段的路由,下一跳地址可以是多个 Calico 的 Node 主机。

不过在决定启用 ECMP 之前,你需了解它的背后仍然面临一些应用上的限制。

当我们使用 BGP 做Layer 3层的负载均衡时,当某一台主机出现故障后,交换机上通过连接三元组/五元组作为 hash key 进行负载均衡的数据包会被重新发到新的主机上去,由于目的地址变化,当数据包到达新主机时会被直接丢弃,导致连接断开。这是反应在应用层上的现象就是“Connection reset by peer”

当然我们可以使用一些其他方法来规避和缩小上述现象的影响范围,例如:

  1. 路由器上调整更稳定的等价多路径路由 ECMP(Equal-Cost Multi-Path routing)算法。当后端集群发生变化时而受到影响较少的连接数。
    1. 逐包负载分担可以提高ECMP的带宽利用率,使等价多路径路由分担更均匀,但存在数据包乱序的问题,需要确保流量接收的设备或终端支持报文乱序组包的功能,实际使用场景很少。
    1. 逐流负载分担能保证包的顺序,保证了同一数据流的帧在同一条下一跳路由转发,而不同数据流在不同的下一跳路由上转发。
  1. 服务部署调度时,尽量选择固定到更小的范围、或者更稳定的主机组。
  2. 上层应用需支持网络连接断开重试逻辑
  3. 在 MeltalLB和应用之间再加一层流量控制器(如 ingress-nginx),以此来维护连接状态的一致性。这样只有当 ingress-nginx 的规模产生变换时,才会出现上述问题。

总结

本文主要讲述在传统的自建数据中心,利用 Calico 和 MetalLB 来组件内部的 BGP 网络。并以此来为 Kubernetes 提供 Pod - PodNode - PodNode - Loadbalancer网络互访的能力。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-05-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云原生小白 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Kubernetes开源LoadBalancer—Metallb(BGP)
最近一年为了迎接亚运会,单位开发了很多大屏展示界面,这些大屏展示页面需要提供给外部门访问,起初使用Ingress方式,但是需要外部门配置DNS,所以我们准备使用NodePort,但是领导想用LoadBalancer,众所周知,LoadBalancer大部分情况下只能在提供了外部负载均衡器的云提供商上使用,而我们是裸机集群,没办法,我们只能找开源的LoadBalancer解决方案。
没有故事的陈师傅
2022/09/15
1.1K0
Kubernetes开源LoadBalancer—Metallb(BGP)
ensp 模拟 calico 跨网段 bgp 网络
之前详细介绍了calico的ipip、vxlan、bgp模式, 但是所有的k8s节点都是同网段的, 本篇使用ensp和workstation在自己家里就可以模拟测试跨网段k8s集群calico方案的纯bgp模式。
我是阳明
2021/12/01
2.6K0
ensp 模拟 calico 跨网段 bgp 网络
Calico 介绍、原理与使用
Calico 是一套开源的网络和网络安全方案,用于容器、虚拟机、宿主机之前的网络连接,可以用在kubernetes、OpenShift、DockerEE、OpenStrack等PaaS或IaaS平台上。
YP小站
2020/06/04
11.8K0
Calico 介绍、原理与使用
「译文」比较开源 k8s LoadBalancer-MetalLB vs PureLB vs OpenELB
在这篇文章中,我们讨论了三个开源的负载平衡器控制器,它们可以与任何Kubernetes的发行版一起使用。
东风微鸣
2022/04/22
2.9K0
Kubernetes的负载均衡方案:MetalLB
在Kubernetes部署完成服务后,我们经常需要将服务开放给到外部用户访问 。如果是使用云平台(阿里云、腾讯云、AWS等)的话,这个需求处理起来非常简单,可以通过云平台的LoadBalancer来实现。
西岸Alex
2022/10/31
6.9K0
Kubernetes的负载均衡方案:MetalLB
云原生 | k8s网络之calico组件多方式快速部署及使用calicoctl管理维护网络
官网地址: https://www.tigera.io/project-calico/
全栈工程师修炼指南
2023/10/31
12.3K1
云原生 | k8s网络之calico组件多方式快速部署及使用calicoctl管理维护网络
Kubernetes 私有集群负载均衡器终极解决方案 MetalLB
私有云裸金属架构(这是相对云上环境来说,不是说无操作系统)上部署的 Kubernetes 集群,通常是无法使用 LoadBalancer 类型的 Service 的。因为 Kubernetes 本身没有为裸机群集提供网络负载均衡器的实现。
iMike
2020/05/24
7.6K1
Kubernetes网络之Calico
Calico是Kubernetes生态系统中另一种流行的网络选择。虽然Flannel被公认为是最简单的选择,但Calico以其性能、灵活性而闻名。Calico的功能更为全面,不仅提供主机和pod之间的网络连接,还涉及网络安全和管理。Calico CNI插件在CNI框架内封装了Calico的功能。
仙人技术
2020/06/27
11.4K0
Kubernetes网络之Calico
Calico BGP 功能介绍:实现
Calico 作为一种常用的 Kubernetes 网络插件,使用 BGP 协议对各节点的容器网络进行路由交换。本文是《Calico BGP 功能介绍》系列的第二篇,介绍 Calico 中 BGP 功能的实现。所使用的 Calico 版本为 v3.17.3。
米开朗基杨
2021/06/09
3.2K0
Calico BGP 功能介绍:实现
kubernetes(十八)集群网路
OSI(Open System Interconnection)是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,一般称为OSI参考模型或七层模型。
alexhuiwang
2020/09/23
1.5K0
kubernetes(十八)集群网路
一文浅析 Kubernetes 入口网络体系
为了了解 Kubernetes 网络的不同方面,我们首先描述在 Pod 中创建服务一直到在公共云和私有云中访问该服务时会发生什么。同时,我们强调了对 Ingress 的需求以及它如何适应整个 Kubernetes 集群网络模型。
Luga Lee
2022/04/18
9971
一文浅析 Kubernetes 入口网络体系
kubernetes集群网络
问题:Pod是K8S最小调度单元,一个Pod由一个容器或多个容器组成,当多个容器时,怎么都用这一个Pod IP?
yuezhimi
2020/09/30
1.5K0
【K8s】Kubernetes 网络之 Calico 插件理论
Calico 是一个开源的网络及网络安全解决方案,主要用于容器、虚拟机、基于本地主机的工作负载之间的网络连接。
行者Sun
2024/11/18
1670
【K8s】Kubernetes 网络之 Calico 插件理论
Kubernetes 中数据包的生命周期 -- 第 4 部分
本文是 Kubernetes 中数据包的生命周期系列文章的第 4 部分,我们将会介绍 Kubernetes 中的 Ingress 资源对象和 Ingress Controller。Ingress Controller 是一个控制器,它监视 Kubernetes API Server 对 Ingress 资源的变更并相应地更新负载均衡器的配置。
Se7en258
2022/06/24
8470
Kubernetes 中数据包的生命周期 -- 第 4 部分
Porter:面向裸金属环境的 Kubernetes 开源负载均衡器
在 Kubernetes 集群中,网络是非常基础也非常重要的一部分。对于大规模的节点和容器来说,要保证网络的连通性、网络转发的高效,同时能做的 IP 和 Port 自动化分配和管理,并提供给用户非常直观和简单的方式来访问需要的应用,这是非常复杂且细致的设计。
米开朗基杨
2019/09/24
1.7K0
Porter:面向裸金属环境的 Kubernetes 开源负载均衡器
Calico网络模式切换
这里不介绍full-mesh的组网,选择更适用于大规模集群的RR组网方式。选作为RR的node需要分配一个未使用的IPv4地址作为Cluster-ID。
DifficultWork
2023/04/10
2.7K0
[译]数据包在 Kubernetes 中的一生(4)
原文:Life of a Packet in Kubernetes — Part 4
CNCF
2021/07/07
6180
Kube-OVN高级功能 | 支持 BGP
" 如果你怀念 SDN 领域丰富的网络能力却在云原生领域苦苦追寻而不得,那么 Kube-OVN 将是你的最佳选择。本系列我们将逐个介绍Kube-OVN高级功能的工作原理及使用路径,帮你尽快征服容器网络难题!"
灵雀云
2023/03/27
1K0
Kube-OVN高级功能  |  支持 BGP
数据包在Kubernetes中的一生(四)- 完结
这是的数据包在Kubernetes中的一生系列的第四篇,如果你还没看过前几篇,那建议你阅读一下前几篇内容:
公众号: 云原生生态圈
2021/11/15
6820
数据包在Kubernetes中的一生(四)- 完结
Kubernetes 在知名互联网公司的(dotnet)落地实践
本来生活网(benlai.com)是一家生鲜电商平台,公司很早就停止了烧钱模式,开始追求盈利。既然要把利润最大化,那就要开源节流,作为技术可以在省钱的方面想想办法。我们的生产环境是由 IDC 机房的 100 多台物理机所组成,占用率高达 95%,闲置资源比较多,于是我们考虑借助 k8s 来重构我们的基础设施,提高我们资源的利用率。
李明成
2020/08/14
6900
相关推荐
Kubernetes开源LoadBalancer—Metallb(BGP)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验