k8s中几种port介绍
1、三个类型端口所应用位置的不同port是service的的端口targetport是pod也就是容器的端口nodeport是容器所在宿主机的端口(实质上也是通过service暴露给了宿主机,而port却没有)2、在作用上portport的主要作用是集群内其他pod访问本pod的时候,需要的一个port,如nginx的pod访问mysql的pod,那么mysql的pod的service可以如下定义
1、端口所应用位置的不同
port是service的的端口
targetport是pod也就是容器的端口
nodeport是容器所在宿主机的端口(实质上也是通过service暴露给了宿主机,而port却没有)
2、在作用上
port
port的主要作用是集群内其他pod访问本pod的时候,需要的一个port,如nginx的pod访问mysql的pod,那么mysql的pod的service可以如下定义,由此可以这样理解,port是service的port,nginx访问service的33306
apiVersion: v1
kind: Service
metadata:
name: mysql-service
spec:
ports:
- port: 33306 targetPort: 3306
selector: name: mysql-pod
targetport
同样的,看上面的targetport,targetport说过是pod暴露出来的port端口,当nginx的一个请求到达service的33306端口时,service就会将此请求根据selector中的name,将请求转发到mysql-pod这个pod的3306端口上
nodeport
nodeport就很好理解了,它是集群外的客户访问,集群内的服务时,所访问的port,比如客户访问下面的集群中的nginx,就是这样的方式,ip:30001
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
container port
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: tomcat-deployment
spec:
replicas: 3
template:
metadata:
labels:
app: tomcat
tier: frontend
spec:
containers:
name: tomcat
image: docker.cinyi.com:443/tomcat
ports:
containerPort: 80 #这里containerPort是容器内部的port
3、总结一下
nodeport是集群外流量访问集群内服务的端口类型,比如客户访问nginx,apache,port是集群内的pod互相通信用的端口类型,比如nginx访问mysql,而mysql是不需要让客户访问到的,最后targetport,顾名思义,目标端口,也就是最终端口,也就是pod的端口。
原文链接:https://www.huaweicloud.com/articles/f6ca54a1f9f51cd03d62425aab310614.html
更多推荐
所有评论(0)