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内的容器。

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • windows搭建svn_pokemmo中文语言包

    windows搭建svn_pokemmo中文语言包上一篇文章讲了如何下载安装SVN,装的原生的SVN,并没有进行相应的配置,这里进行配置SVN官方语言包还没有安装的移步安装教程——>Windows搭建SVN实现访问远程SVN库首先我们打开svn下载界面(点击可进入)往下翻即可看到语言包,这是各个国家不同的语言包,我使用的是中文的语言包,选择中文简体(第一个)下载完成,点击开始安装吧妥妥的下一步啊喏,直接安装完成,勾选下面,配置svn使用此语言包【注意,勾选,勾选,勾选】(没有勾选?成吧,继续往下…

    2022年9月3日
    2
  • 基于javaweb的客户信息管理系统搭建「建议收藏」

    基于javaweb的客户信息管理系统搭建「建议收藏」在写这篇博客之前,特意写下,本人暂时学生一名,也是趁暑假时间,学习一些新的技术,正好学习完拿来练手,花了一个星期多写好了完整的基于javaweb的客户信息管理系统,之所以花了很多时间,原因当然各种了,好了不在累赘。项目:ecclipse+tomcat7+mysql项目简介:基于javaweb的在线客户信息管理,主要实现了客户信息的增删改查基本功能。切入正题,从一开始敲代码开

    2022年10月16日
    0
  • Java之AES/ECB/PKCS7Padding加密方式

    Java之AES/ECB/PKCS7Padding加密方式更安全的加密。

    2025年6月13日
    0
  • [基础控件]—状态切换控件CompoundButton及其子类CheckBox、RadioButton、ToggleButton、switch事件监听与场景使用…[通俗易懂]

    [基础控件]—状态切换控件CompoundButton及其子类CheckBox、RadioButton、ToggleButton、switch事件监听与场景使用…[通俗易懂]一、事件监听对于普通的Button,对其进行事件监听Google官方给出了常见的三种监听方式:1、对每一个button设置事件监听器button.setOnClickListener(View.OnclickListenerlistener);此种方法当button按钮较多时代码显得多、乱、不够简洁明了。2、在Activity中实现接口View.OnclickListener,然后重写…

    2022年7月18日
    12
  • srsLTE测试SDR频偏[通俗易懂]

    srsLTE测试SDR频偏[通俗易懂]1、在Android手机上使用网络信号大师确定当前连接基站的EARFCN。2、修改srsue的ue.conf中earfcn参数为手机连接的基站。3、启动srsue尝试接入,如果收不到基站或接入失败,可以调节ue.conf中的频偏(freq_offset)参数,可以从修改-15000到15000(可以5000为步进调节)不停重复尝试接入。4、能成功接入基站后,FoundCell信息中会有CFO参数,此参数即为频偏,然后再根据此值调试频偏值,频偏=频偏+CFO,比如CFO为-5.5k,频偏=频偏-

    2022年9月27日
    0
  • JaxWsProxyFactoryBean调用WebService实例[通俗易懂]

    JaxWsProxyFactoryBean调用WebService实例[通俗易懂]WebServiceUtils工具类packagexxxx;importjava.util.ResourceBundle;importorg.apache.cxf.endpoint.Client;importorg.apache.cxf.frontend.ClientProxy;importorg.apache.cxf.jaxws.JaxWsProxyFactoryBean…

    2022年7月21日
    12

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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