searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

k8s strictARP

2023-12-08 06:10:45
179
0

kube-proxy是Kubernetes集群中的一个重要组件,负责实现集群内部的负载均衡和服务的访问控制。kube-proxy可以通过实现不同的代理模式来提供这些功能之一就是strictARP。

在strictARP模式下,kube-proxy通过监视集群中的Pod IP地址和MAC地址的变化,并使用静态ARP条目来确保流量正确路由。当一个新的Pod IP地址被分配时,kube-proxy会在集群内部生成一个静态ARP项,将该IP地址映射到Pod的MAC地址上。这样,其他节点上的Pod就可以直接通过这个静态ARP项找到目标Pod并发送网络流量。

strictARP模式的优点是简单且高效。它不需要依赖额外的网络配置或专门的路由器设备来实现流量的路由和负载均衡。同时,这种模式还可以实现相对较低的延迟,因为流量不需要经过额外的网络层。

然而,strictARP模式也存在一些限制。由于ARP协议设计的原因,它只能在一个局域网内工作,因此strictARP只适用于同一网络子网内的Pod间通信。此外,strictARP模式还可能对大规模集群的性能产生一定的影响,因为每个节点上的kube-proxy都需要维护并处理大量的静态ARP条目。

总的来说,strictARP模式是kube-proxy提供的一种基于静态ARP的负载均衡和访问控制机制。它适用于小型集群或在同一网络子网内的Pod间通信,并具有简单高效的特点。

strict ARP开启之后相当于把 将 arp_ignore 设置为 1 并将 arp_announce 设置为 2 启用严格的 ARP,这个原理和LVS中的DR模式对RS的配置一样.

strict ARP配置方法:

# 查看kube-proxy中的strictARP配置
$ kubectl get configmap -n kube-system kube-proxy -o yaml | grep strictARP
      strictARP: false

# 修改方法一:手动修改strictARP配置为true
$ kubectl edit configmap -n kube-system kube-proxy
configmap/kube-proxy edited

# 修改方法二:使用命令直接修改并对比不同
$ kubectl get configmap kube-proxy -n kube-system -o yaml | sed -e "s/strictARP: false/strictARP: true/" | kubectl apply -f - -n kube-system

# 重启kube-proxy确保配置生效
$ kubectl rollout restart ds kube-proxy -n kube-system

# 确认配置生效
$ kubectl get configmap -n kube-system kube-proxy -o yaml | grep strictARP
      strictARP: true
0条评论
0 / 1000
柯****杰
2文章数
0粉丝数
柯****杰
2 文章 | 0 粉丝
柯****杰
2文章数
0粉丝数
柯****杰
2 文章 | 0 粉丝
原创

k8s strictARP

2023-12-08 06:10:45
179
0

kube-proxy是Kubernetes集群中的一个重要组件,负责实现集群内部的负载均衡和服务的访问控制。kube-proxy可以通过实现不同的代理模式来提供这些功能之一就是strictARP。

在strictARP模式下,kube-proxy通过监视集群中的Pod IP地址和MAC地址的变化,并使用静态ARP条目来确保流量正确路由。当一个新的Pod IP地址被分配时,kube-proxy会在集群内部生成一个静态ARP项,将该IP地址映射到Pod的MAC地址上。这样,其他节点上的Pod就可以直接通过这个静态ARP项找到目标Pod并发送网络流量。

strictARP模式的优点是简单且高效。它不需要依赖额外的网络配置或专门的路由器设备来实现流量的路由和负载均衡。同时,这种模式还可以实现相对较低的延迟,因为流量不需要经过额外的网络层。

然而,strictARP模式也存在一些限制。由于ARP协议设计的原因,它只能在一个局域网内工作,因此strictARP只适用于同一网络子网内的Pod间通信。此外,strictARP模式还可能对大规模集群的性能产生一定的影响,因为每个节点上的kube-proxy都需要维护并处理大量的静态ARP条目。

总的来说,strictARP模式是kube-proxy提供的一种基于静态ARP的负载均衡和访问控制机制。它适用于小型集群或在同一网络子网内的Pod间通信,并具有简单高效的特点。

strict ARP开启之后相当于把 将 arp_ignore 设置为 1 并将 arp_announce 设置为 2 启用严格的 ARP,这个原理和LVS中的DR模式对RS的配置一样.

strict ARP配置方法:

# 查看kube-proxy中的strictARP配置
$ kubectl get configmap -n kube-system kube-proxy -o yaml | grep strictARP
      strictARP: false

# 修改方法一:手动修改strictARP配置为true
$ kubectl edit configmap -n kube-system kube-proxy
configmap/kube-proxy edited

# 修改方法二:使用命令直接修改并对比不同
$ kubectl get configmap kube-proxy -n kube-system -o yaml | sed -e "s/strictARP: false/strictARP: true/" | kubectl apply -f - -n kube-system

# 重启kube-proxy确保配置生效
$ kubectl rollout restart ds kube-proxy -n kube-system

# 确认配置生效
$ kubectl get configmap -n kube-system kube-proxy -o yaml | grep strictARP
      strictARP: true
文章来自个人专栏
112
2 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0