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

k8s网络模型总结与实践

2024-06-26 09:45:20
20
0

k8s网络模型

  1. 每个POD都会分配一个集群内唯一的POD IP
  2. pod不需要nat能够与其他节点上的任意pod通信
  3. 节点agents诸如kubelet、system daemon可以与该节点上的任意pod通信
  4. 同一个POD的多个容器共享pod ip和mac地址,可以通过localhost+端口通信
  5. 使用service暴露pods服务供集群内访问,默认使用ClusterIP模式;如果对集群外访问可以使用ingress、nodeport service或者cloud云厂商提供的LB服务接入到service。
  6. POD内访问外部服务,可以配置service+endpoint为外部接入地址的方式,这样引入service中间层。不使用中间层service,直接访问外部域名或者服务端地址也是可以,因为pod内有自己的dns解析,默认使用集群coredns,如果不通可以fallback到node的dns。

集群网络

  • The network plugin is configured to assign IP addresses to Pods.
  • The kube-apiserver is configured to assign IP addresses to Services.
  • The kubelet or the cloud-controller-manager is configured to assign IP addresses to Nodes.

网络插件

在Kubernetes中,网络插件也称为容器网络接口(Container Network Interface,CNI)插件,用于实现容器之间的通信和网络连接。以下是一些常见的Kubernetes网络插件:
1. Flannel:Flannel是一个流行的CNI插件,它使用虚拟网络覆盖技术(overlay network)来连接不同节点上的容器。Flannel支持多种后端驱动,如VXLAN、UDP、Host-GW等。
2. Calico:Calico是一个开源的网络和安全解决方案,它使用BGP协议来实现容器之间的路由。Calico支持灵活的网络策略和安全规则,可用于大规模部署。
3. Weave Net:Weave Net是一个轻量级的CNI插件,通过创建虚拟网络设备和网络代理来连接不同节点上的容器。Weave Net支持overlay模式和直连模式,具有灵活性。
4. Cilium:Cilium是面向Kubernetes的高性能网络和安全解决方案,利用eBPF(Extended Berkeley Packet Filter)技术来提供快速的容器间通信和网络策略实施。
5. Canal:Canal是一个综合性的CNI插件,结合了Calico和Flannel的功能。它可以使用Flannel提供overlay网络,同时使用Calico的网络策略和安全性功能。
6. Antrea:Antrea是一个基于Open vSwitch的CNI插件,专为Kubernetes网络和安全性而设计。它提供了高性能的网络连接和网络策略功能。
7. kube-router:kube-router是一个开源的CNI插件,它结合了网络和服务代理功能。它支持BGP和IPIP协议,并具有负载均衡的特性.
这些是Kubernetes网络插件中的一些常见选项,每个插件都有其特定的优势和适用场景。选择合适的网络插件取决于你的需求、网络拓扑和性能要求等因素。
同时,Kubernetes社区也在不断发展和推出新的网络插件,以满足不断变化的需求。

常见问题

1、应用定义了liveness http pod探针,但是因为网络插件挂掉,导致探测失败,进而应用pod被kubelet频繁重启

解决方法,查看网络插件是否正常运行,如果没有,则需要启动,否则就会出现上述现象。

0条评论
0 / 1000
李****强
14文章数
0粉丝数
李****强
14 文章 | 0 粉丝
原创

k8s网络模型总结与实践

2024-06-26 09:45:20
20
0

k8s网络模型

  1. 每个POD都会分配一个集群内唯一的POD IP
  2. pod不需要nat能够与其他节点上的任意pod通信
  3. 节点agents诸如kubelet、system daemon可以与该节点上的任意pod通信
  4. 同一个POD的多个容器共享pod ip和mac地址,可以通过localhost+端口通信
  5. 使用service暴露pods服务供集群内访问,默认使用ClusterIP模式;如果对集群外访问可以使用ingress、nodeport service或者cloud云厂商提供的LB服务接入到service。
  6. POD内访问外部服务,可以配置service+endpoint为外部接入地址的方式,这样引入service中间层。不使用中间层service,直接访问外部域名或者服务端地址也是可以,因为pod内有自己的dns解析,默认使用集群coredns,如果不通可以fallback到node的dns。

集群网络

  • The network plugin is configured to assign IP addresses to Pods.
  • The kube-apiserver is configured to assign IP addresses to Services.
  • The kubelet or the cloud-controller-manager is configured to assign IP addresses to Nodes.

网络插件

在Kubernetes中,网络插件也称为容器网络接口(Container Network Interface,CNI)插件,用于实现容器之间的通信和网络连接。以下是一些常见的Kubernetes网络插件:
1. Flannel:Flannel是一个流行的CNI插件,它使用虚拟网络覆盖技术(overlay network)来连接不同节点上的容器。Flannel支持多种后端驱动,如VXLAN、UDP、Host-GW等。
2. Calico:Calico是一个开源的网络和安全解决方案,它使用BGP协议来实现容器之间的路由。Calico支持灵活的网络策略和安全规则,可用于大规模部署。
3. Weave Net:Weave Net是一个轻量级的CNI插件,通过创建虚拟网络设备和网络代理来连接不同节点上的容器。Weave Net支持overlay模式和直连模式,具有灵活性。
4. Cilium:Cilium是面向Kubernetes的高性能网络和安全解决方案,利用eBPF(Extended Berkeley Packet Filter)技术来提供快速的容器间通信和网络策略实施。
5. Canal:Canal是一个综合性的CNI插件,结合了Calico和Flannel的功能。它可以使用Flannel提供overlay网络,同时使用Calico的网络策略和安全性功能。
6. Antrea:Antrea是一个基于Open vSwitch的CNI插件,专为Kubernetes网络和安全性而设计。它提供了高性能的网络连接和网络策略功能。
7. kube-router:kube-router是一个开源的CNI插件,它结合了网络和服务代理功能。它支持BGP和IPIP协议,并具有负载均衡的特性.
这些是Kubernetes网络插件中的一些常见选项,每个插件都有其特定的优势和适用场景。选择合适的网络插件取决于你的需求、网络拓扑和性能要求等因素。
同时,Kubernetes社区也在不断发展和推出新的网络插件,以满足不断变化的需求。

常见问题

1、应用定义了liveness http pod探针,但是因为网络插件挂掉,导致探测失败,进而应用pod被kubelet频繁重启

解决方法,查看网络插件是否正常运行,如果没有,则需要启动,否则就会出现上述现象。

文章来自个人专栏
可观测
14 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0