写点什么

Cilium 流量治理功能与部署实践

作者:谐云
  • 2023-07-13
    浙江
  • 本文字数:1180 字

    阅读完需:约 4 分钟

Cilium 流量治理功能与部署实践

Cilium 概述

Cilium 是一个具备 API 感知的网络和安全的开源软件,用于透明保护使用 Docker 和 Kubernetes 等 Linux 容器管理平台部署的应用程序服务之间的网络连接。Cilium 的基础是一种称为 BPF 的新 Linux 内核技术,该技术可在 Linux 自身内部动态插入强大的安全可见性和控制逻辑。

由于 BPF 在 Linux 内核中运行,因此可以应用和更新 Cilium 安全策略,而无需更改应用程序代码或容器配置。与传统的 sidecar 代理模式相比,不需要在应用容器边上单独部署一个流量代理的容器。可以基于 Linux 内核收集网络包信息,利用 eBPF 程序编写包过滤的规则,减少 Linux 内核网络栈开销。

02

组件及安装方式



包含 cilium、hubble、etcd 和 eBPF 四个部分。其中 eBPF 是 Linux 高版本内核自带的特性,无需额外部署。从图中可以看出,以 DaemonSet 的方式在每一个 k8s Node 部署了一个 Agent,并且与相应的控制面 Cilium Operator 交互(实例数至少一个)。Hubble 提供了一些基础监控的功能,并提供了一个可视化的 UI 界面,可以基于 namespace,协议类型,入流出流等进行一些过滤。在没有 service 请求的情况下,UI 界面下无法展示。



Cilium 各组件交互


Mesh 分支的安装:

[1] 系统要求

Linux Kernel>=4.9.17

clang+LLVM>=10.0

不部署 calico 和 flannel,将 cilium 作为 CNI.

[2] cilium install --version -service-mesh:v1.11.0-beta.1 --config enable-envoy-config=true --kube-proxy-replacement=probe --datapath-mode=vxlan

[3] cilium hubble enable --ui

03

官方 mesh demo 功能总结


  1. 作为 CNI,提供了 CiliumNetworkPolicy。

  2.  CiliumEnvoyConfig 可以定义负载均衡策略,重写访问路径。

  3.  kafka topic 的读写也可以通过 CiliumNetWorkPolicy 定义。

  4. ingress 与 cilium 融合需要 k8s1.19+,external-ip 需要云厂商提供 LB 能力,否则会一直 pending。支持以 RESTFUL API 方式从集群外访问 Service。

  5. 支持以 4 层的方式访问 Service,例如通过 IP+Port。包括 externalIPs Service、LoadBalancer Service。

https://github.com/cilium/cilium-service-mesh-beta

CiliumEnvoyConfig 路径重写演示



CiliumNetWorkPolicy 拒绝策略演示

正常情况:

[root@master demo]# kubectl exec tiefighter -- curl -s -XPOST deathstar.default.svc.cluster.local/v1/request-landing

Ship landed

应用拒绝策略后:

04

融合 istio 部署实践


图中的 reviews 各个版本之间的负载均衡是通过 Virtualservice 和 Destinationrule 实现。通过 cilium 安装 istio 需要部署融合版的 istio,一般只有特定的 namespace 下的流量会被 istio 接管,从而可以复用 istio 已有的 CRD 及功能。

兼容 istio 后可以使用的 CRD

05

展望

  1. CiliumEnvoyConfig 支持的 envoy 配置有待扩展

  2. 多租户场景:支持 NodePort 的单节点暴露,即多租户隔离。

  3. 替代 istio 控制面的选择有待确定:Istio , SMI.当前方案直接安装 istiod

  4. 单个 pod 多网卡的支持,以及和其他网络插件的兼容

  5. 基于 CiliumEnvoyConfig 开发一系列更加用户友好的 CRD,便于配置

用户头像

谐云

关注

中国数字基础建设云原生软件领导者 2019-09-30 加入

杭州谐云科技有限公司成立于2016年7月,是国内为数不多掌握底层核心技术的容器云提供商,拥有100%国产自主可控的软件产品。谐云从观云台为核心,结合DevOps与微服务等场景,提供应用全生命周期管理。

评论

发布
暂无评论
Cilium 流量治理功能与部署实践_谐云_InfoQ写作社区