首页 > 其他分享 >3、kubernetes各种port

3、kubernetes各种port

时间:2023-04-03 23:44:48浏览次数:33  
标签:各种 kubernetes service 端口 访问 mysql port name

K8s中nodePort、port、targetPort、hostPort介绍

1、nodeport

外部流量访问k8s集群中service入口的一个方式(还有一种是loadbalancer)

nodeIP:nodePort 提供给外部流量访问k8s集群中service一个入口

比如外部用户要访问k8s集群中的一个Web应用,那么我们可以配置对应service的type=NodePort,nodePort=30001。其他用户就可以通过浏览器http://nodeIP:30001访问到该web服务

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上,最后进入容器。

对应的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。

标签:各种,kubernetes,service,端口,访问,mysql,port,name
From: https://www.cnblogs.com/dingzp/p/17284805.html

相关文章

  • Multimedia (MP3, MPEG-4, AVI, DiVX, etc.) support in Ubuntu 12.04 (Precise)
    Whydoesn’tUbuntusupportMP3‘outofthebox’?UbuntucannotincludesupportforMP3orDVDvideoplaybackorrecording.MP3formatsarepatented,andthepatentholdershavenotprovidedthenecessarylicenses.Ubuntualsoexcludesothermultimediasof......
  • 2、kubernetes资源管理
    四、资源管理介绍k8s本质上是一个集群系统,用户可以在集群中部署各种服务,部署服务(其实就是在k8s集群中运行一个个容器,并将指定的程序跑在容器中)k8s的最小管理单元是pod不是容器,所以只能将容器放在pod中,而k8s一般不会直接管理pod,而是通过pod控制器来管理的pod的pod可以提供服务之......
  • 1h玩转kubernetes
    学习k8s就跟学习office三件套上,95%的人只会5%,而5%的知识可以干95%的事情,所以不要觉的k8s难1kubernetes1什么是kubernetesKubernetes是一个可移植、可扩展的开源平台,一个分布式资源调度进行容器编排云原生的操作系统,用于管理容器化的工作负载和服务,可促进声明式配置和自动化......
  • 1、kubernetes概念
    一、kubernetes简介kubernetes的本质是一组服务器集群。它可以在每个节点上运行特定的程序,来对节点中的容器进行管理。目的是为了实现资源管理的自动化。主要功能如下:1、自我修复:一旦某个容器崩溃,会秒级启动一个新容器2、弹性伸缩:可以根据业务需要,自动对集群中的容器数量进行......
  • vue 项目启动报错opensslErrorStack ERR_OSSL_EVP_UNSUPPORTED
     错误裁图  原因:node升级版本过高 解决办法:windows中在vscode里在命令行输入命令修改环境变量:$env:NODE_OPTIONS="--openssl-legacy-provider"再执行:npmrunserve  linux中exportNODE_OPTIONS=--openssl-legacy-provider  ......
  • kubernetes rabbimq3.11.11集群之mqtt插件
    1.概述本文是总结给予k8s的rabbitmq3.11.11集群的mqtt搭建rabbitmq集群搭建详见前一篇文章:kubernetes集群部署rabbimq3.11.112.自动创建mqtt账号密码wrapper-entrypoint.sh#!/usr/bin/envbash(sleep20;\admin_user=bbbbbb;\admin_passwd=111111;\rabbitmq......
  • kubernetes安装
    环境:   centos7.9 安装步骤:一、准备:(1、SELINUX 2、swapoff 3、hosts 4、sysctl配置)setenforce0sed-i's/SELINUX=enforcing/SELINUX=disabled/g'/etc/sysconfig/selinuxsystemctldisablefirewalldsystemctlstopfirewalldsystemctldisableiptables.s......
  • 【】Java Error: Port 9095 was already in use
    问题描述JavaError:Port9095wasalreadyinuse问题原因端口被占用导致解决方案Windsow系统netstat-ano|findstr9090查询到占用9090端口的进程PID为9784。tasklist|findstr9784查询到PID为0=7984的进程打开【任务管理器】->【服务】,将对应应用关闭Lin......
  • 用C#生成多个Telerik Report PDF
    1.创建一个新的WinForms或WPF应用程序,具体取决于您的需要。2.将TelerikReporting组件添加到您的应用程序中。您可以通过NuGet包管理器来完成此操作。3.在您的应用程序中添加多个报表文件。您可以使用TelerikReportDesigner创建报表并将其添加到您的应用程序项目中。确保为每......
  • 30.查看锁等待相关的阻塞线程、被阻塞线程信息及相关用户、IP、PORT
    SELECTlocked_table,locked_index,locked_type,blocking_pid,concat(T2.USER,'@',T2.HOST)AS"blocking(user@ip:port)",blocking_lock_mode,blocking_trx_rows_modified,waiting_pid,......