Kube-router is a turnkey solution for Kubernetes networking with aim to provide operational simplicity and high performance.
kube-router does it all.
With all features enabled, kube-router is a lean yet powerful alternative toseveral network components used in typical Kubernetes clusters. All this from asingle DaemonSet/Binary. It doesn't get any easier.
--run-service-proxy
kube-router uses the Linux kernel's LVS/IPVS features to implement its K8s ServicesProxy. Kube-router fully leverages power off LVS/IPVS to provide rich set of scheduling options and unique features like DSR (Direct Server Return), L3 load balancing with ECMP for deployments where high throughput, minimal latency and high-availability are crucial.
Read more about the advantages of IPVS for container load balancing:
--run-router
kube-router handles Pod networking efficiently with direct routing thanks to theBGP protocol and the GoBGP Go library. It uses the native Kubernetes API tomaintain distributed pod networking state. That means no dependency on aseparate datastore to maintain in your cluster.
kube-router's elegant design also means there is no dependency on another CNIplugin. Theofficial "bridge" pluginprovided by the CNI project is all you need -- and chances are you already haveit in your CNI binary directory!
Read more about the advantages and potential of BGP with Kubernetes:
--run-firewall
Enabling Kubernetes Network Policiesis easy with kube-router -- just add a flag to kube-router. It uses ipsets withiptables to ensure your firewall rules have as little performance impact on yourcluster as possible.
Kube-router supports the networking.k8s.io/NetworkPolicy API or network policy V1/GAsemantics and also network policy beta semantics.
Read more about kube-router's approach to Kubernetes Network Policies:
If you have other networking devices or SDN systems that talk BGP, kube-routerwill fit in perfectly. From a simple full node-to-node mesh to per-node peeringconfigurations, most routing needs can be attained. The configuration isKubernetes native (annotations) just like the rest of kube-router, so use thetools you already know! Since kube-router uses GoBGP, you have access to amodern BGP API platform as well right out of the box. Kube-router also providesa way to expose services outside the cluster by advertising ClusterIP and externalIPs toconfigured BGP peers. Kube-routes also support MD5 password based authentication anduses strict export policies so you can be assured routes are advertised to underlayonly as you intended.
For more details please refer to the BGP documentation.
A key design tenet of Kube-router is to use standard Linux networking stack and toolset. There is no overlays orSDN pixie dust, but just plain good old networking. You can use standard Linux networking tools like iptables, ipvsadm, ipset,iproute, traceroute, tcpdump etc. to troubleshoot or observe data path. When kube-router is ran as a daemonset, image also ships with these tools automatically configured for your cluster.
Although it does the work of several of its peers in one binary, kube-routerdoes it all with a relatively tiny codebase, partly because IPVS is alreadythere on your Kuberneres nodes waiting to help you do amazing things.kube-router brings that and GoBGP's modern BGP interface to you in an elegantpackage designed from the ground up for Kubernetes.
A primary motivation for kube-router is performance. The combination of BGP forinter-node Pod networking and IPVS for load balanced proxy Services is a perfectrecipe for high-performance cluster networking at scale. BGP ensures that thedata path is dynamic and efficient, and IPVS provides in-kernel load balancingthat has been thoroughly tested and optimized.
Kube-router is being used in several production clusters by diverse set of users ranging from financial firms, gaming companies to universities. For almost a year we have listened to users and incorporated feedback. The core functionality is stable. We are working toward GA release.
We encourage all kinds of contributions, be they documentation, code, fixingtypos, tests — anything at all. Please read the contribution guide.
If you experience any problems please reach us on kube-router slack channelfor quick help. Feel free to leave feedback or raise questions by opening an issue here.
Kube-router build upon following libraries:
简介 本文章主要介绍k8s如何使用kube-router实现pod通信,服务代理,网络策略隔离等功能 kube-router是一个新的k8s的网络插件,使用lvs做服务的代理及负载均衡,使用iptables来做网络的隔离策略。部署简单,只需要在每个节点部署一个daemonset即可,高性能,易维护。支持pod间通信,以及服务的代理。 环境说明 本实验在已经安装配置好k8s集群基础之上进行实验,k8
kube-router 安装 不同模式下安装方式不同,参见 https://github.com/cloudnativelabs/kube-router/blob/master/docs/user-guide.md 使用功能模式 a)pod networking and network policy b)providing service proxy, firewall and pod netwo
如果多次 换不同网络插件实验,每次实验 前先把/etc/cni/net.d/目录下文件清空 rm -rf /etc/cni/net.d/* 复制代码 flannel # 创建flannel目录下载相关文件 mkdir flannel && cd flannel wget https://raw.githubusercontent.com/coreos/flannel/master/Document
由于之前已经写了两篇部署kubernetes的文章,整个过程基本一致,所以这篇只着重说一下coredns和kube-router的部署。 kube version: 1.9.1 docker version: 17.03.2-ce OS version: debian stretch 依然是三个master节点、一个node节点。 1、准备镜像,自行科学下载。 # docker images| g
简介 本文章主要介绍k8s如何使用kube-router实现pod通信,服务 代理,网络策略隔离等功能 kube-router是一个新的k8s的网络插件,使用lvs做服务的代理及负载均衡,使用iptables来做网络的隔离策略。部署简单,只需要在每个节点部署一个daemonset即可,高性能,易维护。支持pod间通信,以及服务的代理。 环境说明 本实验在已经安装配置好k8s集群基础之上进行实验,k
通用说明 如果多次 换不同网络插件实验,每次实验 前先把/etc/cni/net.d/目录下文件清空 rm -rf /etc/cni/net.d/* 复制代码 flannel # 创建flannel目录下载相关文件 mkdir flannel && cd flannel wget https://raw.githubusercontent.com/coreos/flannel/master/Doc
简介 使用kube-router把k8s集群中的pod ip和cluter i暴露集群外部,实现集群外的节点直接访问k8s的pod和svc 环境说明 本实验在已经安装配置好k8s集群基础之上进行实验,k8s安装参考博客其他文章。 实验架构 lab1: master 11.11.11.111 lab2: node 11.11.11.112 lab3: node 11.11.11.113 lab4:
Kube 足够的简单,足够小,具有很强的自适应能力,是个响应式的 CSS 框架。它拥有最新最炫的网格和漂亮的字体排版,没有任何样式绑定,给用户以绝对的自由。 支持的浏览器包括: Latest Chrome Latest Firefox Latest Safari Latest Opera IE 8+ 手机浏览器
Kube-OVN 将基于 OVN/OVS 的网络虚拟化方案带入 Kubernetes,提供了针对企业应用场景的高级容器网络编排功能。 主要功能: 基于Namespace的子网划分,以及网络控制 容器固定 IP IPv6支持 细粒度网络策略 动态 QoS 分布式和集中式网关 内嵌负载均衡器 支持集群内外网络直通 控制平面的灾备及高可用 丰富的监控和链路追踪工具 未来计划: 基于 XDP/DPDK/O
kube-eventer 是一个事件发射器,它将 Kubernetes 事件发送到接收器(例如,DingTalk、SLS、Kafka 等)。 监控是保障系统稳定性的重要组成部分,在 Kubernetes 开源生态中,资源类的监控工具与组件百花齐放,但是,只有资源类的监控是远远不够的,因为资源监控存在如下两个主要的缺欠: 监控的实时性与准确性不足 监控的场景覆盖范围不足 Kubernetes 的核心
kube-backup Quick 'n dirty kubernetes state backup script, designed to be ran as kubernetes Job. Think of it like RANCID for kubernetes. Props to @gianrubio for coming up with the idea. Setup Use the
kube-ps1: Kubernetes prompt for bash and zsh A script that lets you add the current Kubernetes context and namespaceconfigured on kubectl to your Bash/Zsh prompt strings (i.e. the $PS1). Inspired by s
�� Provision a Kubernetes / CoreOS Cluster on Linode Automatically provision a scalable CoreOS/Kubernetes cluster on Linode with zero configuration. The cluster will comprise of a single Kubernetes ma