k8s外部访问pod内部容器的端口-NodePort

这篇具有很好参考价值的文章主要介绍了k8s外部访问pod内部容器的端口-NodePort。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、 如何从外部网络访问

Kubernetes的Pod IP和Cluster IP都只能在集群内部访问,而我们通常需要从外部网络上访问集群中的某些服务,Kubernetes提供了下述几种方式来为集群提供外部流量入口。

二、需求

有一pod,里面有rabbitmq服务,先想从外部通过ip:15672访问MQ的管理员界面查看队列消费情况。
k8s外部访问pod内部容器的端口-NodePort

方法1(pod会重启):

k8s外部访问pod内部容器的端口-NodePort

方法2: NodePort(pod不会重启,更适合生产环境)

NodePort在集群中的主机节点上为Service提供一个代理端口,以允许从主机网络上对Service进行访问。Kubernetes官网文档只介绍了NodePort的功能,并未对其实现原理进行解释。下面我们通过实验来分析NodePort的实现机制。

执行下面的命令创建一个nodeport类型的service。

kubectl apply -f rmq-np-svc.yaml

rmq-np-svc.yaml内容(注意:端口范围只能是 30000-32767):

apiVersion: v1
kind: Service
metadata:
  namespace: yie-edge
  labels:
    baetyl-app-name: basic-service
  name: rabbitmq-np-service
spec:
  ports:
  - name: 15672-15672
    nodePort: 31672
    port: 15672
    protocol: TCP
    targetPort: 15672
  selector:
    baetyl-app-name: basic-service
  type: NodePort
status:
  loadBalancer: {}

三、Kubernetes中的nodePort,targetPort,port的区别和意义

nodePort
外部机器可访问的端口。
比如一个Web应用需要被其他用户访问,那么需要配置type=NodePort,而且配置nodePort=31672,那么其他机器就可以通过浏览器访问IP:31672访问到该服务,例如http://172.19.12.13:31672。
例如rabbitmq可能不需要被外界访问,只需被内部服务访问,那么不必设置NodePort

targetPort
容器的端口(最根本的端口入口),与制作容器时暴露的端口一致

port
kubernetes中的服务之间访问的端口,尽管rabbitmq容器暴露,15672端口,但是集群内其他容器需要通过15672端口访问该服务,外部机器不能访问rabbitmq服务,因为他没有配置NodePort类型

四、操作

通过netstat命令可以看到Kube-proxy在主机网络上创建了30080监听端口,用于接收从主机网络进入的外部流量。k8s外部访问pod内部容器的端口-NodePort

查看创建的service,可以看到kubernetes创建了一个名为rmq-np-svc的service,并为该service在主机节点上创建了31672这个Nodeport。

k8s外部访问pod内部容器的端口-NodePort
k8s外部访问pod内部容器的端口-NodePort文章来源地址https://www.toymoban.com/news/detail-422074.html

到了这里,关于k8s外部访问pod内部容器的端口-NodePort的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【K8S】外部访问请求原理流程(service、kube-proxy、pod的关系)

    用户发起请求,请求传送到Ingress Ingress :作用是定义请求如何转发到service的规则,ingress支持7层代理转发,它可以通过根据不同的域名或者URL访问路径把请求流量转发到不同的service上,实现调度不同业务域、不同URL访问路径的业务流量。 Service: 提供了服务的负载均衡和反向代

    2024年01月17日
    浏览(45)
  • master节点上的nodeport端口不通(k8s踩坑)

    创建了一个nodeport类型的service,端口是80,按道理来说会在每个节点上开启80端口,但是发现master节点上没有开启80端口,node1、node2上均开启了80端口。 在 k8s 1.22.17 版本中已经无法使用 lsof -i:80 或netstat -lntup| grep 80 等方式查看service开启的nodeport端口了,但是我们可以使用teln

    2024年02月15日
    浏览(45)
  • K8s进阶之网络:pod内不同容器、同节点不同pod通信、CNI插件、不同节点pod通信、Flannel容器网络、Serivce连接外部网络、服务发现、Nginx反向代理与域名、Ingress代理

    Pod是Kubernetes中最小的可部署单元,它是一个或多个紧密关联的容器的组合,这些容器共享同一个网络命名空间和存储卷,因此Pod中的 所有容器都共享相同的网络命名空间和IP地址——PodIP ,所以在同一个Pod内的容器间通信可以 通过localhost直接通信 。 k8s创建Pod时永远都是首先

    2024年02月05日
    浏览(53)
  • 一文读懂k8s的外网访问方式,Ingress/NodePort/LoadBanlancer

    本文首发自「慕课网」,想了解更多IT干货内容,程序员圈内热闻,欢迎关注\\\"慕课网\\\"! 作者:一凡|慕课网讲师 在k8s中创建的微服务,大部分都是在集群内部互相调用,这时候,使用DNS就可以很方面访问。 比如:服务名是 my-service,端口号是8080,命名空间是yifan,那么就可以

    2024年02月10日
    浏览(45)
  • k8s ipvs 模式下不支持 localhost:<nodeport>方式访问服务

    简介 今天去定位一个nodeport的问题,发现curl 127.0.0.1:32000 访问nodeport的时候会规律的hang住,本来以为是后端服务的问题,但是curl管理ip:nodeport 是正常的。这个就奇怪了,深入研究了下发现 ipvs模式下是不支持这样访问的,如果想使用 localhost: 得使用iptables模式。 下面是一个歪

    2024年02月22日
    浏览(36)
  • K8S内部pod之间相互调用案例和详解

    目录 一、部署nginx容器 二、部署tomcat服务 三、使用nginx代理tomcat服务 四、测试 1、service是用于K8S的服务发现的重要组件,pod作为运行业务的承载方式,要想被客户端访问或者集群内部其它服务访问,就需要提供一个访问入口;  2、传统来说ip+端口是普适的访问方式,但是

    2024年02月03日
    浏览(50)
  • K8S暴露pod内多个端口

    公司统一用的某个底包跑jar服务,只暴露了8080端口  由于有些服务在启动jar服务后,会启动多个端口,除了8080端口,还有别的端口需要暴露,我这里就还需要暴露9999端口。 注:解决办法其实是可以直接改底包就好了,在底包中多暴露几个端口,但是我这边因为无法改底包,

    2024年02月14日
    浏览(37)
  • k8s 多容器pod进入指定容器

    kubectl exec -it prometheus-prometheus-server-697cccff9c-qtrf7 -c prometheus-server sh

    2024年02月14日
    浏览(57)
  • K8S | 容器和Pod组件

    对比软件安装和运行; 作为研发人员,通常自己电脑的系统环境都是非常复杂,在个人的习惯上,是按照下图的模块管理电脑的系统环境; 对于「基础设施」、「主机操作系统」、「系统软件」来说,通常只做配置修改; 对于自行安装的软件环境来说,个人通常这样分类:

    2024年02月11日
    浏览(53)
  • K8s Pod状态与容器探针

    Pod创建过程如上图所示,首先用户向apiserver发送创建pod的请求,apiserver收到用于创建pod请求后,对应会对该用户身份信息进行验证,该用户是否是合法的用户,是否具有创建pod的权限,如果能够通过apiserver的验证,则进行下一步,对用户提交的资源进行准入控制,所谓准入控

    2024年02月07日
    浏览(90)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包