返回

Cilium BGP 环境快速部署:Containerlab + Kind = 完美组合

后端

前置知识

1.1 Cilium 介绍

Cilium 是一款基于 eBPF 技术的 Kubernetes CNI 插件,Cilium 在其官网上对产品的定位为 “eBPF-based Networking, Security, and Observability” 。eBPF 是一种内核技术,它允许用户在内核中运行沙箱程序,而无需修改内核本身。Cilium 利用 eBPF 技术在内核中实现了网络连接追踪、安全策略执行和可观测性等功能。

1.2 Containerlab 介绍

Containerlab 是一个用于在本地快速部署和管理 Kubernetes 集群的工具。它可以轻松地创建和销毁集群,并支持多种 Kubernetes 发行版。Containerlab 使用 Docker 容器作为节点,因此它对资源的需求非常低。

1.3 Kind 介绍

Kind 是一个用于在本地运行 Kubernetes 集群的工具。它使用 Docker 容器作为节点,并支持多种 Kubernetes 版本。Kind 比 Containerlab 更轻量级,但它不支持创建和销毁集群。

部署步骤

2.1 安装 Containerlab

go get github.com/containerlab/containerlab

2.2 安装 Kind

curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.13.0/kind-linux-amd64
chmod +x ./kind
mv ./kind /usr/local/bin

2.3 创建 Kubernetes 集群

containerlab create -n 1
kind create cluster --name cilium-bgp

2.4 安装 Cilium

helm repo add cilium https://helm.cilium.io/
helm repo update
helm install cilium cilium/cilium --version 1.12.5 \
  --set global.bpfMasquerade=true \
  --set global.cni.chainingMode=aws-cni \
  --set global.cni.customConf=_useSystemResolvConf=false \
  --set global.cni.binPath=/var/lib/cni/bin

2.5 配置 BGP

kubectl apply -f https://raw.githubusercontent.com/cilium/cilium/v1.12/install/kubernetes/cilium-bgp-daemonset.yaml
kubectl apply -f https://raw.githubusercontent.com/cilium/cilium/v1.12/install/kubernetes/cilium-bgp-config-daemonset.yaml

2.6 验证 BGP

kubectl exec -n kube-system -it cilium-bgp-daemonset-xxxxxxxxxx -- cilium bpf bgp show

结语

通过使用 Containerlab + Kind 快速部署 Cilium BGP 环境,您已经成功地将 Cilium 集成到 Kubernetes 集群中,并启用了 BGP 功能。这将使您能够在 Kubernetes 集群中轻松地配置和管理 BGP 路由。