甘草片
作者甘草片·2023-09-21 17:40
软件开发工程师·安天科技

K8S里面的多种port端口你知道怎么区分

字数 930阅读 502评论 0赞 0

一、关于K8S中端口的概念区分

1、Port:

是service端口,即k8s中服务之间的访问端口 ,clusterIP:port 是提供给集群内部客户访问service的入口

2、NodePort:

容器所在node节点的端口,通过nodeport类型的service暴露给集群节点,外部可以访问的端口

3、TargetPort

是pod的端口 ,从port和nodePort来的流量经过kube-proxy流入到后端pod的targetPort上,最后进入容器。

4、ContainerPort

是pod内部容器的端口,targetPort映射到containerPort。

二、总结:

4种端口作用不一样,port和nodePort都是service的端口。

port暴露给集群内客户访问服务,nodePort暴露给集群外客户访问服务。

这两个端口到来的数据都需要经过反向代理kube-proxy流入后端pod的targetPod,从而到达pod中的容器。

三、配置port

[root@master ~]# more nginx -s ervice .yaml

apiVersion: v1

kind: Pod

metadata:

name: nginx

namespace: dev

labels:

app: nginx

spec:

containers:

  • name: nginx

image: nginx:1.20.0

imagePullPolicy: IfNotPresent

ports:

  • containerPort: 80 # 容器端口

---

apiVersion: apps/v1

kind: Service

metadata:

name: nginx

spec:

type: NodePort # 有配置 NodePort ,外部可访问 k8s 中的服务 ,

ports:

  • name: nginx

port: 80 # 服务 service 的访问端口

protocol: TCP

targetPort: 80 # pod 端口 , 映射到容器端口

nodePort: 300 80 # NodePort ,通过 nodeport 类型的 service 暴露给集群外部访问

selector:

app: nginx

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广