kubeasz/docs/guide/ipvs.md

31 lines
1.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# IPVS 服务负载均衡
kube-proxy 组件监听 API server 中 service 和 endpoint 的变化情况,从而为 k8s 集群内部的 service 提供动态负载均衡。在v1.10之前主要通过 iptables来实现是稳定、推荐的方式但是当服务多的时候会产生太多的 iptables 规则大规模情况下有明显的性能问题在v1.11 GA的 ipvs高性能负载模式采用增量式更新并可以保证 service 更新期间连接的保持。
- NOTE: k8s v1.11.0 CentOS7下使用ipvs模式会有问题见 kubernetes/kubernetes#65461测试 k8s v1.10.2 CentOS7 可以。
## 启用 ipvs
建议 k8s 版本1.13 及以后启用 ipvs只要在 kube-proxy 启动参数(或者配置文件中)中增加 `--proxy-mode=ipvs`:
``` bash
[Unit]
Description=Kubernetes Kube-Proxy Server
After=network.target
[Service]
WorkingDirectory=/var/lib/kube-proxy
ExecStart={{ bin_dir }}/kube-proxy \
--bind-address={{ NODE_IP }} \
--hostname-override={{ NODE_IP }} \
--kubeconfig=/etc/kubernetes/kube-proxy.kubeconfig \
--logtostderr=true \
--proxy-mode=ipvs
Restart=on-failure
RestartSec=5
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
```