一、概念:三种端口

  • nodePort:指的是servicename(或者称为service或者svc) nodetype类型暴露出来的端口。

  • port:指的是servicename(或者称为service或者svc) cluster类型暴露出来的端口。

  • targetPort:是pod上的端口。

  • containerPort:就是targetPort。 其对应的是:“k8s ymal文件里面的containerPort”和“docker dockefile里面的expose”都是一样的,只是声明而已,没有任何意义。可以随意写。

二、

注意:如果k8s master上面没部署kubelet和kube-proxy,则k8s master节点不是k8s业务节点。

端口类型3个端口(3个可以不相同,但一般是targetPort和port端口保持一致)3个ip不相同(示例)访问范围是否依赖servicename
targetPort容器里面的端口虚拟ip(即pool ip):1.1.1.1源:任何k8s业务主机可以访问

目的:1.1.1.1:targetPort
不依赖
port(clusterPort)k8s集群的端口clusterip:2.2.2.2源:任何k8s业务主机都可以访问

目的:2.2.2.2:port
由servicename创建
nodePortk8s主机的端口k8s业务主机ip:每台k8s主机上可以看到kube-proxy 进程占据nodePort的端口源:任何非k8s业务主机或者k8s业务主机,都可以访问

目的: 任何k8s业务主机的nodePort的端口
由servicename创建
hostPortk8s主机的端口k8s业务主机ip:只有对应容器所在的k8s业务主机有hostPort端口源:任何非k8s业务主机或者k8s业务主机,都可以访问

目的:对应容器所在的k8s业务主机的hostPort的端口
不依赖
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐