kubernetes启用ipvs模式 (以kubeadm安装的集群为例)


启用ipvs而不使用iptables的原因

  • ipvs 可以更快地重定向流量,并且在同步代理规则时具有更好的性能。此外,ipvs 为负载均衡算法提供了更
  • 多选项,例如:
  1. rr :轮询调度
  2. lc :最小连接数
  3. dh :目标哈希
  4. sh :源哈希
  5. sed :最短期望延迟
  6. nq : 不排队调度

 每个节点都进行如下操作:

安装ipvs相关软件包

yum -y install ipvsadm ipsetmodprobe ip_vslsmod | grep ip_vs

修改内核参数

vi /etc/sysctl.conf 添加

net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1# 应用生效
sysctl -p

修改kube-proxy模式

kubectl edit configmap -n kube-system kube-proxymode: "ipvs"nodePortAddresses: null如果要修改调度算法使用scheduler: ""

默认为空

[root@k8s-master ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port           Forward Weight ActiveConn InActConn

依次重启/删除kube-proxy的pod


Kubeadm不仅仅将k8s集群搭建简化了,还采用了容器化的方式去部署k8s组件,这里只需要知道采用了容器化部署,因为帮我们封装好了。唯一一个采用的不是容器化部署的是kubelete,这个使用的是传统的systemd去管理的,在宿主机进行管理。其他的都是采用容器化部署,也就是通过启动容器帮你拉起组件。

[root@k8s-master ~]# kubectl get pod -n kube-system -o wide
NAME                                       READY   STATUS    RESTARTS   AGE     IP                NODE         NOMINATED NODE   READINESS GATES        1/1     Running   6          2d12h   192.168.179.102   k8s-master   <none>           <none>
kube-proxy-7wgls                           1/1     Running   2          2d11h   192.168.179.103   k8s-node1    <none>           <none>
kube-proxy-vkt7g                           1/1     Running   3          2d11h   192.168.179.104   k8s-node2    <none>           <none>
kube-proxy-xth6p                           1/1     Running   2          2d12h   192.168.179.102   k8s-master   <none>           <none>

删除pod之后 会新起一个新的pod

[root@k8s-master ~]# kubectl delete pod kube-proxy-7wgls -n kube-system
pod "kube-proxy-7wgls" deleted
[root@k8s-master ~]# kubectl delete pod kube-proxy-vkt7g -n kube-system
pod "kube-proxy-vkt7g" deleted
[root@k8s-master ~]# kubectl delete pod kube-proxy-xth6p -n kube-system
pod "kube-proxy-xth6p" deleted

等容器重启完毕再去看看

[root@k8s-master ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  127.0.0.1:32567 rr-> 10.244.169.137:80            Masq    1      0          0
TCP  172.17.0.1:31332 rr-> 10.244.169.139:80            Masq    1      0          0
TCP  172.17.0.1:31383 rr-> 10.244.169.138:8443          Masq    1      0          0
TCP  172.17.0.1:32567 rr-> 10.244.169.137:80            Masq    1      0          0
TCP  192.168.179.102:31332 rr-> 10.244.169.139:80            Masq    1      0          0
TCP  192.168.179.102:31383 rr-> 10.244.169.138:8443          Masq    1      0          0
TCP  192.168.179.102:32567 rr-> 10.244.169.137:80            Masq    1      0          0
TCP  10.96.0.1:443 rr-> 192.168.179.102:6443         Masq    1      0          0
TCP  10.96.0.10:53 rr-> 10.244.36.73:53              Masq    1      0          0         -> 10.244.36.75:53              Masq    1      0          0
TCP  10.96.0.10:9153 rr-> 10.244.36.73:9153            Masq    1      0          0         -> 10.244.36.75:9153            Masq    1      0          0
TCP  10.98.137.105:80 rr-> 10.244.169.137:80            Masq    1      0          0
TCP  10.99.50.2:80 rr-> 10.244.169.139:80            Masq    1      0          0
TCP  10.99.68.0:443 rr-> 192.168.179.103:4443         Masq    1      0          0
TCP  10.106.187.194:443 rr-> 10.244.169.138:8443          Masq    1      0          0
TCP  10.108.138.194:8000 rr-> 10.244.36.74:8000            Masq    1      0          0
TCP  127.0.0.1:31332 rr-> 10.244.169.139:80            Masq    1      0          0
TCP  127.0.0.1:31383 rr-> 10.244.169.138:8443          Masq    1      0          0
UDP  10.96.0.10:53 rr-> 10.244.36.73:53              Masq    1      0          0         -> 10.244.36.75:53              Masq    1      0          0   TCP  172.17.0.1:31332 rr-> 10.244.169.139:80            Masq    1      0          0 [root@k8s-master ~]# kubectl get svc
NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)        AGE
kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP        2d12h
nginx        NodePort    10.99.50.2   <none>        80:31332/TCP   2d11h [root@k8s-master ~]# kubectl get pod -o wide
NAME                     READY   STATUS    RESTARTS   AGE   IP               NODE        NOMINATED NODE   READINESS GATES
nginx-6799fc88d8-mkq8g   1/1     Running   0          10m   10.244.169.139   k8s-node2   <none>           <none>  

Kubernetes 当中启用IPVS模式相关推荐

  1. kube-proxy ipvs模式

    什么是IPVS? IPVS (IP Virtual Server) 基于linux内核模块Netfilter实现的传输层负载均衡技术 LVS中负载均衡使用的技术就是IPVS, IPVS能够代理TCP, ...

  2. 云原生|kubernetes|集群网络优化之启用ipvs

    前言: kubernetes集群的网络是比较复杂的,为了更为方便的使用集群,因此,有使用cni网络插件.cni是容器网络接口,作用是实现容器跨主机网络通信.,pod的ip地址段,也称为cidr,现在抛 ...

  3. Kubernetes K8S在IPVS代理模式下Service服务的ClusterIP类型访问失败处理

    Kubernetes K8S使用IPVS代理模式,当Service的类型为ClusterIP时,如何处理访问service却不能访问后端pod的情况. 背景现象 Kubernetes K8S使用IPV ...

  4. 万字总结,体系化带你全面认识 Kube-Proxy IPVS 模式的工作原理

    公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! 作者:Dustin Specker 译者:米开朗基杨 译者简介:KubeSphere 布道师,目前就职于青云科技 ...

  5. Kube-Proxy IPVS模式源码分析

    女主宣言 kube-proxy当前支持三种方式实现负载均衡,分别是: userspace, iptables, IPVS. 但前两者随着Service的数量增长,存在性能的瓶颈,在生产环境是不能接受的 ...

  6. kube-proxy 切换为ipvs模式

    目录 前言 kube-proxy ipvs和iptables的异同 查看kube-proxy使用的模式 kube-proxy 切换为ipvs模式 二进制部署的kube-proxy也是同样修改 前言 环 ...

  7. K8s9(2-1) k8s中的通信机制, kube-proxy的ipvs模式 ,无头服务,LoadBalancer,ExternalName,外部公有 ip(externalIPs)

    1.K8s中的service和通信: Service可以看作是一组提供相同服务的Pod对外的访问接口.借助Service,应用可以方便地实现服务发现和负载均衡. service默认只支持4层负载均衡能 ...

  8. hive启用本地模式

    2019独角兽企业重金招聘Python工程师标准>>> hive启用本地模式,主要用于处理数据量比较少的情况. hive.exec.mode.local.auto=true hive ...

  9. 【Android 安装包优化】开启资源压缩 ( 资源压缩配置 | 启用严格模式的资源引用检查 | 自定义保留/移除资源配置 | 资源压缩效果 )

    文章目录 一.开启资源压缩 二.启用严格模式的资源引用检查 三.自定义保留/移除资源配置 四.资源压缩效果 五.完整配置 1.keep.xml 配置 2.build.gradle 构建脚本 六.参考资 ...

最新文章

  1. AWS CSAA -- 04 AWS Object Storage and CDN - S3 Glacier and CloudFront(三)
  2. linux samba代码,Linux下Samba服务器源码安装及配置
  3. nyoj164——卡特兰数(待填坑)
  4. 计算机管理器win8.1,没事折腾?Win8.1文件管理器设置几招
  5. 设计模式之二装饰者模式
  6. 关闭vue中的eslint校验
  7. VMware VSAN 高级参数介绍(测试用)
  8. 度量相似性数学建模_数学之美读书笔记
  9. 简单的方法完成项目上传到github
  10. 动态贝叶斯网络推断函数的调用
  11. Python爬虫防封杀方法集合
  12. java list随机取_java list随机抽取元素的案例
  13. 原生小程序用画布制作海报,等比例缩放,和uniapp差不多就是写法有点不同
  14. win7修复计算机 正常启动不了怎么办,Win7系统无法正常启动怎么办
  15. Protel99se电路设计速成-熊健-专题视频课程
  16. 面试最后一问:你有什么问题想问我吗?
  17. springboot整合jett实现模板excel数据导出
  18. 抖音落地页一键复制微信号跳转微信的方法
  19. Creo建模(持续更新)
  20. Efficient single image dehazing and denoising: An efficient multi-scale correlated wavelet approach

热门文章

  1. ssm+java+vue基于微信小程序的电影院票务系统(可选座评论等功能)#毕业设计
  2. 系统结构期末复习(二)计算机指令集结构
  3. 被曝自研 5G 关键芯片 PA?华为未回应
  4. 删除数据库表中重复数据的总结(oracle)
  5. Win7注册表禁用USB接口、Win7组策略禁用USB端口
  6. ABP学习笔记:使用EPPlus以表格导出数据
  7. excel操作 - xlwings模块
  8. input 银行卡输入框,四位一空格
  9. MyBatis--事务
  10. 容器的优雅退出(3):你好,SIGTERM!