NingG +

Kubernetes 系列:Service 和网络

概要

Kubernetes 中, Service 用于对外暴露网络。

主要内容

关于 Service 和网络:

关于端口号 portnodePorttargetPort

port、nodePort总结:

  1. portnodePort都是 service 的端口
  2. port 集群内访问
  3. nodePort 集群外访问
  4. portnodePort的数据,都需要经过反向代理 kube-proxy 流入后端pod的targetPod,从而到达pod上的容器内。

使用calico等overlay网络,可能导致hostport不可用,可以增加 hostNetwork: true 配置启用 host 模式 (在pod中定义)

关键问题

Kubernetes的网络方式主要解决以下几个问题:

  1. Pod 内部:紧耦合的容器之间通信,通过 Pod 和 localhost 访问解决。
  2. Pod 之间:Pod之间通信,建立通信子网,比如隧道、路由,Flannel、Open vSwitch、Weave。
  3. Pod 和外部:Pod和Service,以及外部系统和Service的通信,引入Service解决。

Kubernetes的网络会给每个Pod分配一个IP地址,不需要在Pod之间建立链接,也基本不需要去处理容器和主机之间的端口映射。(疑问:什么含义?)

注意:Pod重建后,IP会被重新分配,所以内网通信不要依赖Pod IP;通过Service环境变量或者DNS解决。

参考资料

Top