网站首页 文章专栏 02kube-router.md
02kube-router.md
创建于:2021-07-04 07:48:28 更新于:2024-05-04 03:08:24 羽瀚尘 339

kube-router是一个新的k8s的网络插件,使用 lvs 做服务的代理及负载均衡,使用 iptables 来做网络的隔离策略。部署简单,只需要在每个节点部署一个 daemonset 即可,高性能,易维护。支持pod间通信,以及服务的代理。

本次实验重新创建了集群,使用之前测试其他网络插件的集群环境没有成功.可能是由于环境干扰,实验时需要注意

下载配置文件

mkdir kube-router && cd kube-routerrm -f generic-kuberouter-all-features.yaml
wget https://raw.githubusercontent.com/cloudnativelabs/kube-router/master/daemonset/generic-kuberouter-all-features.yaml

定制配置文件

# 启用pod网络通信,网络隔离策略,服务代理所有功能
# CLUSTERCIDR kube-controller-manager 启动参数 --cluster-cidr 的值
# APISERVER kube-apiserver 启动参数 --advertise-address 值
# 通过观察kubectl get service 的输出发现,cluster的ip与service ip在同一个网段内CLUSTERCIDR='10.233.0.0/16'
APISERVER='https://192.168.25.180:6443'

sed -i "s;%APISERVER%;$APISERVER;g" generic-kuberouter-all-features.yaml
sed -i "s;%CLUSTERCIDR%;$CLUSTERCIDR;g" generic-kuberouter-all-features.yaml

应用

kubectl apply -f generic-kuberouter-all-features.yaml

# 删除kube-proxy
kubectl -n kube-system delete ds kube-proxy

# 如果是二进制安装使用如下命令
# systemctl stop kube-proxy

# 清理kube-proxy留下的规则
# docker run --privileged --net=host registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy-amd64:v1.10.2 kube-proxy --cleanup

# 由于image tag的不同,修改为如下命令
docker run --privileged --net=host  k8s.gcr.io/kube-proxy:v1.15.0 kube-proxy --cleanup

如果是在已经工作的集群中更换网络插件,那么就需要在所有的节点上删除kube-proxy。

查看结果

kubectl get pods -n kube-system
kubectl get svc -n kube-system

参考: