k8s pod内部容器_K8S 容器之间通讯方式

概述

首先k8s里面容器是存在于pod里面的,所以容器之间通讯,一般分为三种类型:

1. pod内部容器之间

2. pod 与 pod 容器之间

3. pod 访问service服务

pod内部容器之间

这种情况下容器通讯比较简单,因为k8s pod内部容器是共享网络空间的,所以容器直接可以使用localhost访问其他容器。

k8s在启动容器的时候会先启动一个pause容器,这个容器就是实现这个功能的。

pod 与 pod 容器之间

这种类型又可以分为两种情况:

1. 两个pod在一台主机上面

2. 两个pod分布在不同主机之上

针对第一种情况,就比较简单了,就是docker默认的docker网桥互连容器。

第二种情况需要更为复杂的网络模型了,k8s官方推荐的是使用flannel组建一个大二层扁平网络,pod的ip分配由flannel统一分配,通讯过程也是走flannel的网桥。

docker --daemon --bip=172.17.18.1/24

注意其中的“--bip=172.17.18.1/24”这个参数,它限制了所在节点容器获得的IP范围。

每个node上面都会创建一个flannel0虚拟网卡,用于跨node之间通讯。所以容器直接可以直接使用pod id进行通讯。

跨节点通讯时,发送端数据会从docker0路由到flannel0虚拟网卡,接收端数据会从flannel0路由到docker0,这是因为flannel会添加一个路由

发送端:

route -n172.17.0.0 0.0.0.

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值