038.集群网络-K8S网络实现
2020-03-22 16:03:30来源:博客园 阅读 ()
038.集群网络-K8S网络实现
一 Kubernetes网络实现
1.1 Kubernetes网络优势
在实际的业务场景中,业务组件之间的关系十分复杂,微服务的理念更是让应用部署的粒度更加细小和灵活。为了支持业务应用组件的通信,Kubernetes网络的设计主要致力于解决以下问题。- 容器到容器之间的直接通信。
- 抽象的Pod到Pod之间的通信。
- Pod到Service之间的通信。
- 集群外部与内部组件之间的通信。
二 Kubernetes网络通信
2.1 容器之间通信
同一个Pod内的容器(Pod内的容器是不会跨宿主机的)共享同一个网络命名空间,共享同一个Linux协议栈。所以对于网络的各类操作,就和它们在同一台机器上一样,它们甚至可以用localhost地址访问彼此的端口。这种方式简单、安全和高效,也能减小将已经存在的程序从物理机或者虚拟机移植到容器下运行的难度。 在Kubernetes使用如下方式利用Docker的网络模型: 如上图所示,在Node1上运行着一个Pod实例,且运行着容器1和容器2。容器1和容器2共享一个网络的命名空间,共享一个命名空间的结果就是它们好像在一台机器上运行,它们打开的端口不会有冲突,可以直接使用Linux的本地IPC进行通信(例如消息队列或者管道)。其实,这和传统的一组普通程序运行的环境是完全一样的,传统程序不需要针对网络做特别的修改就可以移植了,它们之间的互相访问只需要使用localhost就可以。例如,如果容器2运行的是MySQL,那么容器1使用localhost:3306就能直接访问这个运行在容器2上的MySQL了。2.2 Pod之间的通信
每一个Pod都有一个真实的全局IP地址,同一个Node内的不同Pod之间可以直接采用对方Pod的IP地址通信,而且不需要采用其他发现机制,例如DNS、Consul或者etcd。Pod容器既有可能在同一个Node上运行,也有可能在不同的Node上运行,所以通信也分为两类:同一个Node内Pod之间的通信和不同Node上Pod之间的通信。- 同一个Node内Pod之间的通信
- 不同Node上Pod之间的通信
- 在整个Kubernetes集群中对Pod的IP分配进行规划,不能有冲突;
- 需要一种方案,将Pod的IP和所在Node的IP关联起来,通过这个关联让Pod可以互相访问。
原文链接:https://www.cnblogs.com/itzgr/p/12547450.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:centos网卡配置详解
- keepalived 实现LVS负载均衡高可用集群(一) 2020-06-04
- 树莓派命令行配置无线网络 2020-05-29
- corosync v1 + pacemaker高可用集群部署(二)资源配置(VIP+ 2020-05-28
- 容器技术之Docker网络 2020-05-24
- Linux VMware centOS7 网络配置 2020-05-21
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash