跳至主要內容
Kubernetes和Docker网络原理(一)

Kubernetes和Docker网络原理(一)

Docker 网络实现

平时在进行Kubernetes开发和运维的时候,接触到的最多的概念就是Docker和Kubernetes的网络概念了,尤其是Kubernetes各种各样的IP、Port,有时候会混淆,因此有必要对Docker和Kubernetes的底层网络实现进行学习。这篇文章就先针对Docker的网络实现进行一下分析介绍。

Docker的网络基础

Docker的网络实现主要利用到的还是Linux网络相关的技术,如Network Namespace、Veth设备对、网桥、iptables、路由。


J.F.Gaufrid大约 8 分钟LinuxDockerKubernetes
Kubernetes和Docker网络原理(三)

Kubernetes和Docker网络原理(三)

Service通信

kube-proxy运行机制

为了支持集群的水平扩展、高可用性,Kubernetes抽象出了Service的概念。Service是对一组Pod的抽象,它会根据访问策略(如如负载均衡策略)来访问这组Pod。Kubernetes在创建服务时会为服务分配一个虚拟的IP地址,客户端通过访问这个虚拟的IP地址来访问服务,服务则负责将请求转发到后端的Pod上。起到一个类似于反向代理的作用,但是它和普通的反向代理还是有一些不同:首先,它的Service的IP地址,也就是所谓的ClusterIP是虚拟的,想从外面访问还需要一些技巧;其次,它的部署和启停是由Kubernetes统一自动管理的。


J.F.Gaufrid大约 4 分钟LinuxDockerKubernetes
Kubernetes和Docker网络原理(二)

Kubernetes和Docker网络原理(二)

Kubernetes Pod 间通信

之前文章中主要关于Docker的网络实现进行了介绍和探讨,对于Docker网络而言,其最大的局限性在于跨主机的容器通信方案上存在空白,而Kubernetes作为适合大规模分布式集群的容器编排平台,其在网络实现层面上主要解决的问题就包括了如下几点:

  • 容器间通信
  • Pod间通信
  • Pod与Service通信
  • 集群内外通信

这篇博文主要针对Kubernetes的容器间通信和Pod间通信进行介绍和探讨,之后再通过单独一篇文章去探讨Pod与Service的通信,也就是kube-proxy工作原理和Service机制相关。


J.F.Gaufrid大约 7 分钟LinuxDockerKubernetes