橘子皮学docker之Kubernetes的网络知识

目录

  • docker的网络通信
  • kubernetes的网络通信
  • 总结

kubernetes集群搭建完成后,使用docker ps命令,可以看到正在跑的容器,其中一个容器名字叫flannel。这个flannel是一个开源的网络组件,了解flannel之前,先回顾下docker的网络通信吧。

docker version:17.03
kubernetes version:1.90

docker的网络通信

[root@k8s02 ~]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
acd552bcdec2        bridge              bridge              local
3fba01ae965e        host                host                local
1f2f59916861        none                null                local

docker network ls
查看docker 网络。相比较docker旧版本,17.03版本的docker有三种网络类型。

  • bridge:桥接模式

    • 桥接模式,也是默认的default的网络模式。一个容器一个network的namesapce。
    • 容器与宿主机的通信是通过桥接模式进行的,这个网桥桥,就是docker0。这个网桥工作方式和物理交换机类似,这个宿主机上的所有容器通过docker0连在了同一个二层网络中
    • 通过ip a或者ifconfig指令,可以看到docker0网桥。每生成一个容器,就会产生一对veth。
    • 通信的过程大概就是docker→veth→docker0→veth→宿主机这样。
      容器的ip由网桥分配,网桥是容器的默认网关,不写--net的话,默认的用的就是bridge模式,使用这种模式时,实际上实在iptables里做了DNAT规则,实现转发功能
    • docker在iptables里做了DNAT,允许所有的容器可以访问外部网络,但是不允许外部的网络访问容器,如果要访问,只能通过开放端口
  • host:主机模式。

    • 需要在启动容器时加上参数--net=host。容器和宿主机共享一个network的namespace。容器的ip就是宿主机的ip、容器的端口的就是宿主机的端口。
    • 注意:只是共享network的namesapce,但是其他方面比如文件系统这些还是和宿主机隔离的。
    • 通常用于跨主机的docker通信
  • none:这个模式docker容器拥有自己的network namespace ,但是不为容器进行网络配置,容器的网卡、ip这些需要自己配置。用的比较少

kubernetes的网络通信

这里主要讲讲我对容器与容器之间通信、pod与pod之间通信的理解

  • 容器与容器之间的通信:
    同一个pod中的容器可以直接通信,他们共享一个network 的namespace,共享同一个linux的协议栈。每个容器都可以通过localhost访问对方的端口。简单安全高效,稍微牺牲了点同一个pod中的容器之间的安全隔离性
  • pod与pod之间的通信:
    • 同一个node中,pod与pod之间的通信:类似于上面讲的dokcer的默认通信。pod与pod之间通信也是通过veth对连接docker0网桥进行通信的
    • 不同node中,pod之间的通信:不同node之间pod的通信,必须通过宿主机的ip进行寻址,有什么办法可以解决呢:1、把pod的ip和宿主机的ip关联起来。2、整个集群中pod的ip进行分配,不能有冲突。为了达到这个目的,采用了开源网络组件,flannel。

Flannel的功能:
1、给每个集群内的pod分配不冲突的ip地址
2、在这些ip之间建立overlay网络,进行通信。

ifocnfig

flannel.1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1400
        inet 10.244.1.0  netmask 255.255.255.255  broadcast 0.0.0.0
        inet6 fe80::b4ca:f7ff:fe2b:b391  prefixlen 64  scopeid 0x20<link>
        ether b6:ca:f7:2b:b3:91  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 8 overruns 0  carrier 0  collisions 0

创建了一个flannel的网桥,既然是网桥,连接了哪两部分呢,一段是docker0,用来与容器通信,另一端是flanneld的服务进程。

flanneld的进程作用:
连接到etcd,来管理分配ip,同时在内存中建立pod节点路由表,下连接到docker0和物理网络,利用路由表,从而完成pod之间的通信

flannel工作原理:
通过修改docker的启动参数,将他分配好的ip穿进去
--bip=ip/24

缺点:
有一些网络延时
使用的UDP传输协议,非可靠。

总结

跟openstack一样,docker集群的网络也是一大难题。本文将、讲的比较浅显,是我自己学习的笔记,如果需要深入了解,请参照官网和kubernetes的社区。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269

推荐阅读更多精彩内容

  • 概述 自从docker容器出现以来,容器的网络通信就一直是大家关注的焦点,也是生产环境的迫切需求。而容器的网络通信...
    糙老爷们儿吃什么樱桃阅读 3,538评论 1 5
  • 转载自 http://blog.opskumu.com/docker.html 一、Docker 简介 Docke...
    极客圈阅读 10,404评论 0 120
  • •Kubernetes介绍1.背景介绍云计算飞速发展- IaaS- PaaS- SaaSDocker技术突飞猛进-...
    Zero___阅读 14,688评论 0 21
  • 关于docker网络模式有四种,内容如下,至于内容从来哪的,我也不知道,反正网上找的 前言:我们在使用docker...
    撸大师阅读 12,913评论 3 9
  • 此刻脑子有些乱,有一肚子的话却不知该如何表达。 之前日记中一直在写梦想与努力,可今天我却不敢说梦想与努力。一提到它...
    Catherine_龙猫阅读 168评论 0 0