kubernetes各种Port

kubernetes的port非常多,本文进行总结,主要解决以下五个问题:
containerPort是什么? 在哪里设置?
targetPort 是什么?在哪里设置?
port是什么?在哪里设置?
nodePort是什么?在哪里设置?
hostPort是什么?在哪里设置?

1、梳理kubernetes微服务请求过程
service通过label selector 来选中打上对应标签的pod,与pod建立连接(TCP或UDP)与pod连接的端口是targetPort。
外部访问service可使用clusterip:port 或者endpoint,所以service中至少要配置port和targetport两个端口,默认这两个端口配置成一样的!
service 到 pod backend 的选择相当于一个VIP!

containerPort是什么? 在哪里设置?
将pod内的container与外部进行通信的端口, Pod中的所有容器共享一个网络IP,容器间可直接用localhost访问。端口不能冲突就行!
delpoyment配置示例:
ports:
- containerPort: 8023
hostPort: 30049
name: indexviewtool
protocol: TCP
targetPort 是什么?在哪里设置?
targetPort是pod上的端口,从port和nodePort上到来的数据最终经过kube-proxy流入到后端pod的targetPort上进入容器。所以需要告诉service!,所以要在svc yaml中定义
ports:
- name: proxy
port: 8023
targetPort: 8023
nodePort: 30049
selector:
name: indexviewtool

nodePort是什么?在哪里设置?
nodePort的范围是30000-32767,集群内不允许冲突,在svc yaml 中设置,见下。
注意,一旦设置了nodePort,所有的node主机都会监听这个端口,也就是说使用集群内任意一台nodeIP:nodePort都可以访问到service服务,同样,在集群内此端口就只能被设置一次。
ports:
- name: proxy
port: 8023
targetPort: 8023
nodePort: 30049
selector:
name: indexviewtool
hostPort是什么?在哪里设置?
hostPort是直接将容器的端口与所调度的节点上的端口路由,这样用户就可以通过宿主机的IP加上来访问Pod了,
这里是访问pod,与nodePort 不同哈!
在deploy yaml 中设置
ports:
- containerPort: 8023
hostPort: 30049
name: indexviewtool
protocol: TCP
port是什么?在哪里设置?
port是service的端口,通过clusterip和port即可访问到service服务,返回为pod tag,注意必须ip和端口缺一不可!
ports:
- name: proxy
port: 8023
targetPort: 8023
nodePort: 30049
selector:
name: indexviewtool

总结
1:containerPort 和 targetPort 放在一起理解,两个不是一个概念,前者容器的port,负责容器间的交流,前者在deploy yaml中设置,后者再在svc yanl 中设置,与kube-proxy进行连接,不强制保持一致! @hxx 请求先通过targetProt到到达pod,然后再通过containerPort 进入容器!
2:port 和 nodePort 放在一起理解,前者是在集群内访问service 需要的端口,需要结合clusterip ,缺一不可!
3:如果想在集群外访问,则需要将service变成nodePort的类型,需要抛出nodeProt,使用集群任意node ip即可访问!
4:hostPort 是集群外想访问pod 需要抛出的端口,使用pod 所在node 的ip,结合此端口实现! @hxx 因为pod ip变换莫测,所以应用比较局限,需要自己维护这个变化,比如node打上标签!
5:targetPort 和port 默认是相同的,可以不同!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值