成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Kubernetes集群如何用Ipvs替換Iptables

系統 Linux 云原生
iptables 和 ipvs 都是 Linux 內核中的網絡代理技術,都可以用于實現負載均衡和服務發現。但兩種模式之間存在以下幾個區別:

我們都知道k8s中的 kube-proxy 是一個網絡代理(proxy),它負責為 Kubernetes 集群中的服務提供負載均衡和服務發現功能。kube-proxy 會以不同的模式運行,其中 iptables 模式和 ipvs 模式是其中兩種常見的模式。

iptables 和 ipvs 都是 Linux 內核中的網絡代理技術,都可以用于實現負載均衡和服務發現。但兩種模式之間存在以下幾個區別:

實現方式不同

iptables 基于 iptables 規則實現,每個節點都會在 iptables 中添加一組規則來實現負載均衡和服務發現;而 ipvs 則是基于內核層面的負載均衡技術,可以實現更高效的網絡代理處理。

性能不同

在高負載的情況下,ipvs 模式下的 kube-proxy 性能更好,因為它對網絡的負載均衡處理是基于內核層面的,更加高效。但是,Iptables 模式在部分場景下也可以獲得更好的性能。

功能不同

Iptables 模式下的 kube-proxy 在 Kubernetes 1.16 版本之前,使用 iptables 實現端口轉發,只能實現基于TCP的負載均衡和服務發現,且不能支持四層負載均衡。而在 Kubernetes 1.16 版本中新增了 iptables-nat 模式,可以支持四層負載均衡。相比之下,ipvs 模式支持 TCP、UDP、SCTP 和四層負載均衡,支持 Online Hashed、IP Hash、Round Robin 和 Least Connection 等多種負載均衡算法。

iptable 的一個缺點在于由于工作在 Kernel 級別,如果 iptables 規則過于復雜,可能會對系統產生性能影響,并且由于 iptables 規則集中在 Kernel 中,修改比較困難。

在 Kubernetes 系統中,kubeadm 管理工具將默認選擇 ipvs 模式來處理 kube-proxy,同時 Kubernetes 還提供了多種異常處理機制,如自動拉起、Rollback、故障轉移等,以確保系統的可靠性、高可用性和容錯性,從而避免了 iptables 處理過程中可能出現的問題,并且改善了整個系統在故障處理和容錯性方面的性能。

操作是在所有節點上

開啟內核支持

cat >> /etc/sysctl.conf << EOF
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
EOF

sysctl -p

開啟ipvs支持

yum -y install ipvsadm ipset

臨時生效

modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4

永久生效

cat > /etc/sysconfig/modules/ipvs.modules <<EOF
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOF

配置kube-proxy,在master上操作

因使用kubeadmin安裝,所以操作方式如下

[root@master] # kubectl edit cm kube-proxy -n kube-system
configmap/kube-proxy edited

修改如下

kind: MasterConfiguration
apiVersion: kubeadm.k8s.io/v1alpha1
...
ipvs:
    excludeCIDRs: null
    minSyncPeriod: 0s
    scheduler: ""
    syncPeriod: 30s
  kind: KubeProxyConfiguration
  metricsBindAddress: 127.0.0.1:10249
  mode: "ipvs"                 #修改

在master重啟kube-proxy

kubectl get pod -n kube-system | grep kube-proxy | awk '{print $1}' | xargs kubectl delete pod -n kube-system  

驗證ipvs是否開啟

kubectl logs kube-proxy-cvzb4 -n kube-system
I0409 03:37:29.194391       1 server_others.go:170] Using ipvs Proxier.
W0409 03:37:29.194779       1 proxier.go:401] IPVS scheduler not specified, use rr by default
I0409 03:37:29.194981       1 server.go:534] Version: v1.15.3
I0409 03:37:29.214255       1 conntrack.go:52] Setting nf_conntrack_max to 524288
I0409 03:37:29.216744       1 config.go:96] Starting endpoints config controller
I0409 03:37:29.216812       1 controller_utils.go:1029] Waiting for caches to sync for endpoints config controller
I0409 03:37:29.217445       1 config.go:187] Starting service config controller
I0409 03:37:29.218320       1 controller_utils.go:1029] Waiting for caches to sync for service config controller
I0409 03:37:29.318218       1 controller_utils.go:1036] Caches are synced for endpoints config controller
I0409 03:37:29.318564       1 controller_utils.go:1036] Caches are synced for service config controller

驗證

進入pod內,現在可以ping通servicename了,使用iptables時,發現ping的時候出現了如下錯誤,執行完上述操作,一切正常

root@xxxxxx-cb4c9cb8c-hpzdl:/opt# ping xxxxxx
PING xxxxxx.xxxxx.svc.cluster.local (172.16.140.78) 56(84) bytes of data.
From 172.16.8.1 (172.16.8.1) icmp_seq=1 Time to live exceeded
From 172.16.8.1 (172.16.8.1) icmp_seq=2 Time to live exceeded

錯誤

圖片圖片

解決(降低kube-proxy 版本)

kubectl -n kube-system set image daemonset/kube-proxy *=registry.aliyuncs.com/k8sxio/kube-proxy:v1.17.6
責任編輯:武曉燕 來源: 步步運維步步坑
相關推薦

2011-03-15 09:10:47

iptablesNAT

2011-03-15 14:26:23

iptablesNAT

2022-11-30 09:39:44

KubeadmDebian 11Kubernetes

2021-08-19 09:30:03

Kubernetes集群IPVS

2024-05-23 11:46:45

2011-03-14 16:05:52

IPtables流量

2019-09-03 10:19:58

Kubernetes本地負載命令

2021-10-13 16:00:53

KubeProxyIptables

2024-11-12 13:34:25

2020-06-15 14:31:26

Google容器Kubernets

2023-04-06 08:00:36

VPC虛擬私有云Amazon

2020-08-25 07:48:17

Kubernetes集群系統

2024-07-22 15:49:07

KubernetesRedis

2023-12-18 09:37:37

2020-09-09 07:00:00

Kubernetes集群容器

2023-06-25 18:53:03

2010-10-09 21:51:30

2021-03-16 08:35:14

Kubernetes Docker容器

2021-07-14 13:30:44

KubernetesLinux文件

2022-03-07 10:41:09

云計算容器Kubernetes
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 天堂久久天堂综合色 | 在线观看黄视频 | 美女福利视频 | 日韩影院一区 | 成人免费在线 | 羞羞网站在线免费观看 | 国产精品完整版 | 欧美亚洲视频在线观看 | 午夜影院| 亚洲国产成人av好男人在线观看 | 亚洲久视频 | 国产精品免费观看 | 最新中文字幕第一页视频 | 欧美精品久久久久久久久久 | 久久久久久亚洲精品 | 国产色99精品9i | 亚洲成人中文字幕 | 成人av播放 | 国产精品777一区二区 | 欧美日韩国产一区二区三区 | 久久国产精品一区二区三区 | 96国产精品久久久久aⅴ四区 | 91视频网 | 色综合一区二区 | 亚洲国产黄 | 91精品免费 | 欧美性生活网 | 蜜桃黄网 | 免费看国产一级特黄aaaa大片 | 色婷婷综合久久久中字幕精品久久 | 欧美视频一区二区三区 | 欧美成人h版在线观看 | 亚洲精品一区二区 | 国产人久久人人人人爽 | 国产精品国产a | 欧美精品久久久 | 免费一区在线 | 国产99久久 | 午夜精品久久 | 国产第一页在线观看 | 91精品久久久久 |