K8s端口映射_docker查看端口映射

K8s端口映射_docker查看端口映射分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.netDefinitionGivenalanguage,definearepresentationforitsgrammaralongwithaninterpreterthatusestherepresentation…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net

1、nodePort

外部流量访问K8s集群中Service入口的一种方式(另一种方式是LoadBalancer),即nodeIP:nodePort是提供给外部流量访问K8s集群中Service的入口。比如外部用户要访问K8s集群中的一个Web应用,那么我们可以配置对应Service的type=NodePort,nodePort=30001,然后就可以通过浏览器输入http://nodeIP:30001访问到该Web服务。而数据库等服务可能不需要被外界访问,只需被内部服务访问即可,那么我们就不必设置Service的NodePort。

2、port

K8s集群内部服务之间访问Service的入口。即clusterIP:port是Service暴露在clusterIP上的端口。MySQL容器暴露了3306端口,集群内其他容器通过33306端口访问MySQL服务,但是外部流量不能访问MySQL服务,因为MySQL服务没有配置NodePort。对应的service.yaml如下:

apiVersion: v1
kind: Service
metadata:
  name: mysql-service
spec:
  ports:
  - port: 33306
    targetPort: 3306
  selector:
    name: mysql-pod

3、targetPort

容器的端口(最终的流量端口)。targetPort是Pod上的端口,从port和nodePort上来的流量,经过Kube-Proxy流入到后端Pod的targetPort上,最后进入容器。
制作容器时暴露的端口一致(使用DockerFile中的EXPOSE),例如官方的Nginx(参考DockerFile)暴露80端口。 对应的service.yaml如下:

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

4、hostPort

这是一种直接定义Pod网络的方式。hostPort是直接将容器的端口与所调度的节点上的端口路由,这样用户就可以通过宿主机的IP加上端口来访问Pod了,例如:

apiVersion: v1
kind: Pod
metadata:
  name: influxdb
spec:
  containers:
    - name: influxdb
      image: influxdb
      ports:
        - containerPort: 8086
          hostPort: 8086

这样做有个缺点,因为Pod重新调度的时候该Pod被调度到的宿主机可能会变动,这样就变化了,用户必须自己维护一个Pod与所在宿主机的对应关系。
使用了hostPort的容器只能调度到端口不冲突的Node上,除非有必要(比如运行一些系统级的daemon服务),不建议使用端口映射功能。如果需要对外暴露服务,建议使用NodePort Service。

5、总结

总的来说,port和nodePort都是Service的端口,前者暴露给K8s集群内部服务访问,后者暴露给K8s集群外部流量访问。从这两个端口过来的数据都需要经过反向代理Kube-Proxy,流入后端Pod的targetPort上,最后到达Pod内的容器。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/192249.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 《算法和数据结构》算法零基础五十题讲解

    《算法和数据结构》算法零基础五十题讲解「让天下没有难学的算法」

  • SMTP服务器地址_imap服务器怎么设置

    SMTP服务器地址_imap服务器怎么设置认识SMTP服务器首先要知道SMTP,SMTP是“SimpleMailTransferProtocol”的缩写,即简单电子邮件传输协议,而SMTP服务器就是遵循SMTP协议发送电子邮件的服务器,用来发送或中转用户发出的电子邮件。SMTP协议是一个相对简单、高效的文本协议,使用25端口,属于TCP/IP协议族,可以帮助每台SMTP服务器在发送或中转电子邮件时找到下一个目的地,要为一个给定的域名决定…

  • 精美网站赏析_怎么收藏网址到收藏夹

    精美网站赏析_怎么收藏网址到收藏夹英文网站1链接地址享笑网个人博客交流网站蓝色网站商城黑色网站后台管理系统橙色企业信息管理系统韩国情侣酒店网站模板bootstrap制作的企业后台模板个人空间网站黑色主题网页

  • failed to load response data:Request content was evicted from inspector cache

    failed to load response data:Request content was evicted from inspector cache在项目中,我用谷歌浏览器查看后台返回的json数据,但是发现前端页面已经接收成功,并且渲染了对应json数据了,但是network里面的response却报错:调整对应json数据后发现,当后台返回前端的数据超过了一定大小时,就会出现响应截断的问题,不过目前没有找到在哪里设置,我本地是大概超过10m就会截断。谷歌浏览器编辑设置是about:flags,但是我找不到对应设置response的选项。后来发现火狐浏览器可以设置报文响应大小的限制,先在url栏输入about:config,然后选择接受风险并

  • Ubuntu16.04安装ros_u盘安装双系统

    Ubuntu16.04安装ros_u盘安装双系统一、win10下安装Ubuntu16.04双系统1、制作系统U盘下载Ubuntu16.04我们首先去Ubuntu官网下一个Ubuntu16.04的iso镜像文件。

  • 基于对话框的MFC程序实现RTL风格的一种方式[通俗易懂]

    基于对话框的MFC程序实现RTL风格的一种方式[通俗易懂]操作系统使用阿拉伯语时,微软操作系统为了适应阿拉伯语地区和希伯来语地区自右向左的阅读习惯,提供了独特的RTL的界面风格。怎么才能实现应用程序和操作系统保持一致的RTL风格呢?搜索了一些关于RTL界面实现的资料,网上大多数是通过遍历程序窗口,依次调用ModifyStyleEx系统API来实现的。基于对话框的MFC程序的窗口样式是通过资源文件预先定义的。基于对话框的…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号