kubernetes services介绍

type:
serice的类型,常用的有NodePort、ClusterIP.
NodePort:定义服务可以提供给集群外部访问;
ClusterIP:定义服务只能在集群内部访问;

protocol:
service 使用的协议,常用的有:TCP UDP http

name: 
可以给port定义一个name;
如果名为"my-service.my-ns"的Service 有一个协议为TCP的名叫"http"的端口,你可以对"_http._tcp.my-service.my-ns"做一次DNS SRV查询来发现”http”的端口号。

port:
即,这里的port表示:service暴露在cluster ip上的端口,:port 是提供给集群内部客户访问service的入口。

nodePort:
首先,nodePort是kubernetes提供给集群外部客户访问service入口的一种方式(另一种方式是LoadBalancer),所以,:nodePort 是提供给集群外部客户访问service的入口。

targetPort:
targetPort很好理解,targetPort是pod上的端口,从port和nodePort上到来的数据最终经过kube-proxy流入到后端pod的targetPort上进入容器。

port、nodePort总结
总的来说,port和nodePort都是service的端口,前者暴露给集群内客户访问服务,后者暴露给集群外客户访问服务。从这两个端口到来的数据都需要经过反向代理kube-proxy流入后端pod的targetPod,从而到达pod上的容器内。
使用calico等overlay网络可能导致hostport不可用,可以增加“hostNetwork: true” 配置启用host模式 (在pod中定义)

参考:

https://kubernetes.io/docs/concepts/services-networking/service/

你可能感兴趣的:(kubernetes)