安装kube-router

kube-router 实战

官网

kube-router官方文档 中文版文档

介绍

kube-router

  • 使用iptables实现网络策略限制. --run-firewall参数,可透传源IP。

  • 通过bgp实现路由策略.--run-router 参数

  • 通过lvs实现代理策略。 --run-service-proxy

--run-firewall, --run-router, --run-service-proxy可以有选择地只启用kube-router所需的功能

  • 只提供入口防火墙:--run-firewall=true --run-service-proxy=false --run-router=false

  • 仅仅替换kube-proxy: --run-service-proxy=true --run-firewall=false --run-router=false

网络功能介绍

代理功能介绍

网络策功能略介绍

查看CIDR划分

安装kube-router

依赖

  • 已有k8s集群

  • kube-router 能够连接apiserver

  • controller-manager必要配置参数 --allocate-node-cidrs=true --cluster-cidr=10.254.0.0/16,示例:

  • 直接在主机运行需要有ipset命令

  • 以daemonseset 运行需要开启--allow-privileged=true

  • 默认情况下pod并不能访问所属的svc,想要访问需要开启发夹模式,介绍

  • 需要在kube-router守护进程清单中启用hostIPC:true和hostPID:true。并且必须将主路径/var/run/docker.sock设置为volumemount.

这里我们启用DR模式

创建一个应用测试kube-router

暴露服务

  • svc clusterip

在每台机器上查看lvs条目

发现本机SVCIP代理后端真实podip,使用rr算法,通过ip addr s可以看到每添加一个服务node节点上面的kube-dummy-if网卡就会增加一个虚IP

  • svc session-affinity

  • svc NodePort

  • 更改算法

network policy

kubectl annotate ns prod "net.beta.kubernetes.io/network-policy={\"ingress\":{\"isolation\":\"DefaultDeny\"}}" 测试可以看到其他命名空间ping不通该命名空间

查看路由表

查看bgp新信息

Last updated

Was this helpful?