惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

B
Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Security Blog
Microsoft Security Blog
B
Blog RSS Feed
云风的 BLOG
云风的 BLOG
G
Google Developers Blog
Recent Announcements
Recent Announcements
A
About on SuperTechFans
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Google Online Security Blog
Google Online Security Blog
Google DeepMind News
Google DeepMind News
S
Schneier on Security
S
Secure Thoughts
T
The Exploit Database - CXSecurity.com
Martin Fowler
Martin Fowler
P
Proofpoint News Feed
Security Latest
Security Latest
Jina AI
Jina AI
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Recorded Future
Recorded Future
T
Tor Project blog
有赞技术团队
有赞技术团队
H
Hackread – Cybersecurity News, Data Breaches, AI and More
N
News | PayPal Newsroom
博客园 - 三生石上(FineUI控件)
MyScale Blog
MyScale Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Last Week in AI
Last Week in AI
F
Full Disclosure
Hacker News: Ask HN
Hacker News: Ask HN
Forbes - Security
Forbes - Security
D
DataBreaches.Net
人人都是产品经理
人人都是产品经理
NISL@THU
NISL@THU
C
Cisco Blogs
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Google DeepMind News
Google DeepMind News
Project Zero
Project Zero
IT之家
IT之家
T
Threatpost
Cyberwarzone
Cyberwarzone
O
OpenAI News
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
J
Java Code Geeks
P
Proofpoint News Feed
The Last Watchdog
The Last Watchdog
月光博客
月光博客
Latest news
Latest news
MongoDB | Blog
MongoDB | Blog
Apple Machine Learning Research
Apple Machine Learning Research

博客 on 打工人日志

k8s RKE2 vSphere 存储配置 OpenClaw 全能指南:从安装到进阶自动化实战 (2026 最终版) Kubernetes — skywalking + banyanDB APM监控部署 Kubernetes — promtail + loki + grafana 日志系统部署 k8s master 节点 Unauthorized Kubernetes — metalLB + Traefik 部署 Kubernetes — SSL 证书自动更新 Kubernetes — RKE2 + kube-vip + cilium 部署 使用TLSv1.3 升级nginx和openssl Proxmox VE(PVE) 更新到最新版本 kindle 邮件发送失败,错误代码E999 metallb + ingress-nginx + argocd 本地部署 iStoreOS(旁路由)使用openclash实现dns劫持 异常流量分析:图片库服务黑客入侵 openwrt 硬盘扩容 搭建ip地址检索服务 Kubernetes — k8s 手动安装 1.17.9 SELinux 问题:导致端口无法创建,无法访问 【福利】免费!本地部署!去除视频中移动的物体 通知:《打工人日报》迁移到独立板块 KyBook 3 | calibre-web - IOS系统最佳图书伴侣 Tmux 安装和使用教程 DockerHub 加速镜像部署 - 使用cloudflare 代理 docker的零停机部署 SD-webui 批量处理图片 ubuntu 安装 ComfyUI ubuntu 安装 stable-diffusion-webui 测试策略:微服务架构 单元测试:测试单元质量提升 端到端测试:模拟用户体验 Kubernetes — containerd 安装和部署 CI/CD 可观察性-基于grafana Argo cd 安装和部署 linux服务器进程打开文件过多导致服务异常 使用 ElasticSearch Curator 7天定期删除日志 sonarqube docker安装和配置 SSH 通过 443 端口连接 GitHub iOS 17 「待机显示」适配普通 iPhone(非 Pro/Max),屏幕在充电时常亮 GNU/Linux 一键更换系统软件源脚本 解决Elasticsearch索引只读(read-only) 【福利】埃隆·马斯克传 [沃尔特·艾萨克森] 在线下载 【破解】小鹏P5和小鹏G9开启adb和网络adb Kubernetes — kubecost 分析 Kubernetes 成本 3D Gaussian Splatting:3D模型渲染 Linux 系统收包流程以及内核参数优化 2023亚运会电竞门票民购买指南(报名+抽签) Vue3 + vite + nginx项目部署后404问题 大麦抢票辅助软件(福利 TFBOYS十年之约演唱会 2023 全机位 视频) 黑群晖最新安装教程 Ansible部署ceph集群 最好的微信朋友圈集赞神器-福利推荐 推荐一下 容器云资源 2010年的天涯神贴聊房价 如何礼貌回绝不合理的需求 nginx 配置和编译 github 国内代理访问下载 使用scrapy-redis实现增量爬取 逆境和成长-2022年终总结 优雅的使用Conda管理python环境 Jenkins 编译Android apk 流水线 Kubernetes — 更新证书 shell功能脚本集合 Nexus3 使用和部署 githubAction set-output弃用错误 Kubernetes — Rook云存储介绍和部署 Kubernetes — 基于K8S搭建Ceph分布式存储 Kubernetes — 探针和生命周期 Kubernetes — 开放标准(OCI、CRI、CNI、CSI、SMI、CPI)概述 kubernetes 部署插件 (Flannel、Web UI、CoreDNS、Ingress Controller) Cloudflare Zero Trust 内网穿透 k8s CNI 问题 连接认证失效 k8s.gcr.io国内无法连接解决方法 headscale 部署使用 羊了个羊小程序 破解通关 K8S 问题排查:cgroup 内存泄露问题 RocketMQ k8s部署 4主4从集群 docker 问题处理 kubernetes 存储 linux服务器 删除空间却未释放 kubernetes 从1.23.x 升级到 1.24.x 编写 kubernetes 资源描述文件 nginx ssh-key connection exception kubernetes manual expansion VSCode插件推荐=> Code Runner ant build.xml 编写 kubernetes 调度过程 记录一次上门打散工 k8s本地联调神器kt-connect Ant中如何添加第三方jar包依赖 OpenELB:让k8s私有环境对外暴露端口 linux 网络测速 安装 docker 出现 ERROR: Unsupported distribution 'ol' 问题 logrotate 日志滚动的使用 nginx 编译参数详解 nginx 重写规则 rewrite模块 nginx.conf 配置文件详解 rsync 文件同步 nginx 日志格式整理 163企业邮箱设置教程 2021年第50周记
k8s RKE2 cilium L2 + envoy gateway 安装配置
2026-04-10 · via 博客 on 打工人日志

cilium L2 load balancer 配置

配置rke2-config

创建配置

1/var/lib/rancher/rke2/server/manifests/rke2-cilium-config.yaml

修改 HelmChartConfig,你的配置需要改成这样(关键部分):

 1apiVersion: helm.cattle.io/v1
 2kind: HelmChartConfig
 3metadata:
 4  name: rke2-cilium
 5  namespace: kube-system
 6spec:
 7  valuesContent: |-
 8    kubeProxyReplacement: true
 9
10    k8sServiceHost: 10.10.10.100 #vip地址
11    k8sServicePort: 6443
12
13    l2announcements:
14      enabled: true
15
16    externalIPs:
17      enabled: true
18
19    devices:
20      - ens192  #网卡名称    

重启 RKE2

1systemctl restart rke2-server

确认 L2 生效

1kubectl -n kube-system get cm cilium-config -o yaml | grep l2

应该出现:

1enable-l2-announcements: "true"

创建 IP Pool

1apiVersion: cilium.io/v2
2kind: CiliumLoadBalancerIPPool
3metadata:
4  name: default-pool
5spec:
6  blocks:
7  - start: 10.10.10.180 # 地址池ip范围
8    stop: 10.10.10.200

应用

1kubectl apply -f cilium-lb-ipam-pool.yaml

创建 L2 announcement

1apiVersion: cilium.io/v2alpha1
2kind: CiliumL2AnnouncementPolicy
3metadata:
4  name: announce-lb
5spec:
6  loadBalancerIPs: true

应用

1kubectl apply -f cilium-l2-announcement-policy.yaml

创建 service 测试

 1# 测试 Cilium LB IPAM:部署一个简单服务并用 LoadBalancer 暴露
 2# 应用后查看 EXTERNAL-IP 应从 10.10.10.180~10.10.10.200 中分配:kubectl get svc -n default test-lb
 3---
 4apiVersion: apps/v1
 5kind: Deployment
 6metadata:
 7  name: test-lb
 8  namespace: default
 9  labels:
10    app: test-lb
11spec:
12  replicas: 1
13  selector:
14    matchLabels:
15      app: test-lb
16  template:
17    metadata:
18      labels:
19        app: test-lb
20    spec:
21      containers:
22        - name: nginx
23          image: nginx:alpine
24          ports:
25            - containerPort: 80
26---
27apiVersion: v1
28kind: Service
29metadata:
30  name: test-lb
31  namespace: default
32spec:
33  type: LoadBalancer
34  selector:
35    app: test-lb
36  ports:
37    - port: 80
38      targetPort: 80
39      protocol: TCP
40      name: http

应用

1kubectl apply -f test.yaml

可以看到

1test-lb   LoadBalancer   10.43.xxx.xxx   10.10.10.180

部署 Envoy Gateway

在 RKE2 环境中部署 Envoy Gateway (EG) 是一个非常明智的选择,特别是考虑到 RKE2 默认集成的 Nginx Ingress 已逐渐进入维护状态。
Envoy Gateway 基于 Kubernetes Gateway API 标准,能够提供更强大的流量管理能力(如负载均衡、限流、鉴权等)。

禁用默认 Ingress

/etc/rancher/rke2/config.yaml 中添加

1disable:
2  - rke2-ingress-nginx

重启RKE2 服务

1systemctl restart rke2-server

声明式部署 Envoy Gateway 控制平面

下载你需要的 crds.yaml

1wget https://github.com/envoyproxy/gateway/releases/download/v1.7.0-rc.2/envoy-gateway-crds.yaml

部署

1kubectl create namespace envoy-gateway-system
2kubectl create -f envoy-gateway-crds.yaml

部署控制平面核心

创建文件 /var/lib/rancher/rke2/server/manifests/01-envoy-gateway.yaml:

 1apiVersion: helm.cattle.io/v1
 2kind: HelmChart
 3metadata:
 4  name: envoy-gateway
 5  namespace: kube-system
 6spec:
 7  chart: gateway-helm
 8  repo: oci://registry-1.docker.io/envoyproxy
 9  version: v1.7.0
10  targetNamespace: envoy-gateway-system
11  valuesContent: |-
12    deployment:
13      replicas: 1
14    envoyGateway:
15      gateway:
16        controllerName: gateway.envoyproxy.io/gatewayclass-controller    

等待片刻,RKE2 会自动触发 Helm Job。可以通过 kubectl get pods -n envoy-gateway-system 确认 envoy-gateway 容器状态变为 Running。

初始化 Gateway 实例 (数据平面)

控制平面就绪后,需要创建 Gateway 资源来拉起真正处理流量的 Envoy Proxy 数据面。

创建一个名为 02-gateway-instance.yaml 的文件并执行 kubectl apply -f 02-gateway-instance.yaml

 1---
 2# 1. 定义网关类
 3apiVersion: gateway.networking.k8s.io/v1
 4kind: GatewayClass
 5metadata:
 6  name: eg-gateway-class
 7spec:
 8  controllerName: gateway.envoyproxy.io/gatewayclass-controller
 9---
10# 2. 实例化网关
11apiVersion: gateway.networking.k8s.io/v1
12kind: Gateway
13metadata:
14  name: main-gateway
15  namespace: envoy-gateway-system
16spec:
17  gatewayClassName: eg-gateway-class
18  listeners:
19    # 开启 HTTP 监听
20    - name: http
21      protocol: HTTP
22      port: 80
23      allowedRoutes:
24        namespaces:
25          from: All
26    # 开启 HTTPS 监听 (需提前创建 TLS Secret)
27    # - name: https
28    #   protocol: HTTPS
29    #   port: 443
30    #   tls:
31    #     mode: Terminate
32    #     certificateRefs:
33    #       - name: your-tls-secret
34    #         kind: Secret
35    #   allowedRoutes:
36    #     namespaces:
37    #       from: All
38
39### HTTPRout 配置也可以单独部署
40---
41apiVersion: gateway.networking.k8s.io/v1
42kind: HTTPRoute
43metadata:
44  name: http-route
45  namespace: default
46spec:
47  parentRefs:
48    - name: main-gateway
49      namespace: envoy-gateway-system
50      sectionName: http
51  rules:
52    - matches:
53        - path:
54            type: PathPrefix
55            value: /
56      backendRefs:
57        - name: test-lb
58          port: 80

验证阶段:
此时,Envoy Gateway 会动态生成一个 Envoy Proxy 的 Deployment 和 LoadBalancer Service。
执行 kubectl get svc -n envoy-gateway-system,你应该能看到 envoy-main-gateway-... 获取到了 Cilium 分配的 EXTERNAL-IP

业务路由配置 (HTTPRoute 实战)

现在可以将核心业务接入网关。Gateway API 通过 HTTPRoute 将域名/路径映射到后端服务。
假设我们有一个前端服务 test-frontend 和一个后端服务 test-backend 运行在命名空间中。
创建路由配置 03-business-routes.yaml 并 apply

 1apiVersion: gateway.networking.k8s.io/v1
 2kind: HTTPRoute
 3metadata:
 4  name: test-route
 5  namespace: dev
 6spec:
 7  parentRefs:
 8    # 绑定到第三阶段创建的 main-gateway
 9    - name: main-gateway
10      namespace: envoy-gateway-system
11  hostnames:
12    - "test.local" # 你的测试或生产域名
13  rules:
14    # 规则 1:API 接口路由到后端服务
15    - matches:
16        - path:
17            type: PathPrefix
18            value: /api
19      backendRefs:
20        - name: test-backend
21          port: 8080
22          weight: 100
23      # 可选:利用 Envoy 重写路径 (剥离 /api 前缀)
24      filters:
25        - type: URLRewrite
26          urlRewrite:
27            path:
28              type: ReplacePrefixMatch
29              replacePrefixMatch: /
30
31    # 规则 2:默认所有其他请求路由到前端静态资源
32    - matches:
33        - path:
34            type: PathPrefix
35            value: /
36      backendRefs:
37        - name: test-frontend
38          port: 80

生产环境进阶建议

  • 镜像仓库代理加速:对于 Harbor 镜像仓库,如果存在大文件推拉,Envoy 的性能通常优于 Nginx,可以在 Gateway 的 listener 中调整超时时间和最大请求体限制。

  • AI API 暴露与限流:如果你在集群内部署了 Ollama 等本地大模型,可以通过 Envoy Gateway 的 ClientTrafficPolicy(一种针对 Gateway API 的扩展策略)对暴露给外部的 LLM 接口进行精准的 QPS 限流,防止硬件资源被瞬间打满。

  • CI/CD 自动化集成:在使用 TeamCity 进行持续部署时,只需在 Pipeline 最后的 Deploy 阶段,将新的镜像 tag 更新到 Deployment,HTTPRoute 无需任何修改即可平滑地将流量导向新 Pod。