1. 程式人生 > 其它 >K8S_三種Port區別總結

K8S_三種Port區別總結

nodePort:

外部流量訪問K8S叢集中Service入口的一種方式

比如外部使用者要訪問k8s叢集中的一個Web應用,那麼我們可以配置對應service的type=NodePort,nodePort=30001。其他使用者就可以通過瀏覽器http://node:30001訪問到該web服務。


port:

K8S叢集內部服務之間訪問service的入口。即clusterIP:port是service暴露在clusterIP上的埠


targetPort:

容器的埠(最終的流量埠)。targetPort是“pod”上的埠,從port和nodePort上來的流量,經過kube-proxy流入到後端pod的targetPort上,最後進入容器。

例子:

apiVersion: v1
kind: Service
metadata:
 name: nginx-service
spec:
 type: NodePort         // 有配置NodePort,外部流量可訪問k8s中的服務
 ports:

- port: 30080        // 服務訪問埠
targetPort: 80       // 容器埠
nodePort: 30001      // NodePort
 selector:
  name: nginx-pod

總結:

總的來說,port和nodePort都是service的埠,前者暴露給k8s叢集內部服務訪問,後者暴露給k8s叢集外部流量訪問。從上兩個埠過來的資料都需要經過反向代理kube-proxy,流入後端pod的targetPort上,最後到達pod內的容器。