前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >高级功能 | Kube-OVN集成Cilium

高级功能 | Kube-OVN集成Cilium

作者头像
灵雀云
发布2022-11-29 16:02:20
8580
发布2022-11-29 16:02:20
举报

" 如果你怀念 SDN 领域丰富的网络能力却在云原生领域苦苦追寻而不得,那么 Kube-OVN 将是你的最佳选择。本系列我们将逐个介绍Kube-OVN高级功能的工作原理及使用路径,帮你尽快征服容器网络难题!"

【Cilium 】[1] 是一款基于 eBPF 的网络和安全组件,Kube-OVN 利用其中的 【CNI Chaining】[2] 模式来对已有功能进行增强。用户可以同时使用 Kube-OVN 丰富的网络抽象能力和 eBPF 带来的监控和安全能力。

通过集成 Cilium,Kube-OVN 用户可以获得如下增益:

  • 更丰富高效的安全策略。
  • 基于 Hubble 的监控视图。

前提条件

  1. Linux 内核版本高于 4.19 或其他兼容内核以获得完整 eBPF 能力支持。
  2. 提前部署 Helm 为安装 Cilium 做准备,部署 Helm 请参考 【Installing Helm】[3]

配置 Kube-OVN

为了充分使用 Cilium 的安全能力,需要关闭 Kube-OVN 内的 networkpolicy 功能,并调整 CNI 配置优先级。

install.sh 脚本里修改下列变量:

代码语言:javascript
复制
ENABLE_NP=false
CNI_CONFIG_PRIORITY=10

若已部署完成,可通过修改 kube-ovn-controller 的启动参数进行调整 networkpolicy

代码语言:javascript
复制
args:
- --enable-np=false

修改 kube-ovn-cni 启动参数调整 CNI 配置优先级:

代码语言:javascript
复制
args:
- --cni-conf-name=10-kube-ovn.conflist

在每个节点调整 Kube-OVN 配置文件名称,以便优先使用 Cilium 进行操作:

代码语言:javascript
复制
mv /etc/cni/net.d/01-kube-ovn.conflist /etc/cni/net.d/10-kube-ovn.conflist

部署 Cilium

创建 chaining.yaml 配置文件,使用 Cilium 的 generic-veth 模式:

代码语言:javascript
复制
apiVersion: v1kind: ConfigMapmetadata:  name: cni-configuration  namespace: kube-systemdata:  cni-config: |-    {"name": "generic-veth","cniVersion": "0.3.1","plugins": [        {"type": "kube-ovn","server_socket": "/run/openvswitch/kube-ovn-daemon.sock","ipam": {"type": "kube-ovn","server_socket": "/run/openvswitch/kube-ovn-daemon.sock"          }        },        {"type": "portmap","snat": true,"capabilities": {"portMappings": true}        },        {"type": "cilium-cni"        }      ]    }

安装配置文件:

代码语言:javascript
复制
kubectl apply -f chaining.yaml

使用 Helm 部署 Cilium:

代码语言:javascript
复制
helm repo add cilium https://helm.cilium.io/
helm install cilium cilium/cilium --version 1.11.6 \
    --namespace kube-system \
    --set cni.chainingMode=generic-veth \
    --set cni.customConf=true \
    --set cni.configMap=cni-configuration \
    --set tunnel=disabled \
    --set enableIPv4Masquerade=false \
    --set enableIdentityMark=false

确认 Cilium 安装成功:

代码语言:javascript
复制
# cilium  status
    /¯¯\
 /¯¯\__/¯¯\    Cilium:         OK
 \__/¯¯\__/    Operator:       OK
 /¯¯\__/¯¯\    Hubble:         disabled
 \__/¯¯\__/    ClusterMesh:    disabled
    \__/

DaemonSet         cilium             Desired: 2, Ready: 2/2, Available: 2/2
Deployment        cilium-operator    Desired: 2, Ready: 2/2, Available: 2/2
Containers:       cilium             Running: 2
                  cilium-operator    Running: 2
Cluster Pods:     8/11 managed by Cilium
Image versions    cilium             quay.io/cilium/cilium:v1.10.5@sha256:0612218e28288db360c63677c09fafa2d17edda4f13867bcabf87056046b33bb: 2
                  cilium-operator    quay.io/cilium/operator-generic:v1.10.5@sha256:2d2f730f219d489ff0702923bf24c0002cd93eb4b47ba344375566202f56d972: 2

文章链接

1、Cilium:https://cilium.io/

2、CNI Chaining:https://docs.cilium.io/en/stable/gettingstarted/cni-chaining/

3、Installing Helm:https://helm.sh/docs/intro/install/

更多功能介绍,请见Kube-OVN 最新中文文档(点击阅读原文):https://kubeovn.github.io/docs/v1.10.x/

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

本文分享自 云原生技术社区 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前提条件
  • 配置 Kube-OVN
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档