k8s中port-forward 、service的nodeport与ingress区别
在Kubernetes中,port-forward、Service的NodePort和Ingress都是用于将外部流量引入集群内部的方法,但它们在使用场景、实现方式和功能上有所不同。
- port-forward:
- 使用场景:主要用于开发、测试和调试。它允许开发者在本地机器上访问集群内部的Pod,而无需将服务公开到外部网络。
- 实现方式:通过kubectl命令行工具实现。开发者在本地机器上运行
kubectl port-forward命令,指定要转发的Pod和端口号。该命令会创建一个从本地机器到Pod的端口转发连接。 - 功能:临时性的、针对个人的端口转发。它不支持负载均衡和高可用性,只能用于单个Pod的访问。
- Service的NodePort:
- 使用场景:适用于需要从集群外部访问集群内部服务,并且服务需要对多个用户或系统可用的情况。
- 实现方式:通过Kubernetes的Service资源实现。在Service的定义中指定
type: NodePort,并为Service分配一个NodePort。Kubernetes会在每个节点上打开该NodePort,并将流量转发到Service后端的Pod。 - 功能:提供集群外部访问集群内部服务的能力。支持负载均衡(通过kube-proxy实现),但仅限于同一节点上的Pod之间的负载均衡。不具备高级路由功能。
- Ingress:
- 使用场景:适用于需要从集群外部访问集群内部多个服务,并且需要基于HTTP/HTTPS进行路由的情况。Ingress可以提供更细粒度的访问控制、负载均衡和SSL/TLS终止等功能。
- 实现方式:通过Kubernetes的Ingress资源实现。Ingress资源定义了外部访问的规则和路由信息。用户需要创建一个Ingress控制器(如Nginx Ingress Controller、Traefik等)来实际处理Ingress资源定义的规则。
- 功能:提供集群外部访问集群内部多个服务的能力,并支持基于HTTP/HTTPS的路由、负载均衡、SSL/TLS终止等高级功能。Ingress控制器可以实现更复杂的路由规则、流量控制和安全策略。
总结来说,port-forward主要用于开发、测试和调试场景下的临时访问;Service的NodePort适用于需要从外部访问单个Service的情况,支持基本的负载均衡;而Ingress则适用于需要更复杂的路由和负载均衡规则的场景,特别是基于HTTP/HTTPS的访问控制。在选择使用哪种方式时,应根据具体的需求和场景进行权衡和选择。
k8s中port-forward 、service的nodeport与ingress区别的更多相关文章
- k8s的port、targetport、nodeport之间的区别
先看举例: k8s集群中跑着一个tomcat服务,tomcat容器expose的端口为8080 apiVersion: v1 kind: Service metadata: name: tomcat- ...
- 详解k8s中的liveness和readiness的原理和区别
liveness与readiness的探针工作方式源码解析 liveness和readiness作为k8s的探针,可以对应用进行健康探测. 二者支持的探测方式相同.主要的探测方式支持http探测,执行 ...
- k8s 中的 service 如何找到绑定的 Pod 以及如何实现 Pod 负载均衡
k8s 中的 service 如何找到绑定的 Pod 以及如何实现 Pod 负载均衡 前言 endpoint kube-proxy userspace 模式 iptables ipvs kernels ...
- [转帖]k8s 中的服务如何沟通
k8s 中的服务如何沟通 https://www.jianshu.com/p/9fae09876eb7 本文将介绍 k8s 中的服务如何相互访问,例如后端服务访问数据库,不同类型的服务间的相互访问.并 ...
- k8s中的网络(较详细汇总)
目录 一.网络前提条件-网络模型 二.需要解决的网络问题 1.容器和容器之间的网络 2.pod与pod之间的网络 同一台node节点上pod和pod通信 不同node节点上pod和pod通信 3.po ...
- K8S中Service
Service 的概念Kubernetes Service 定义了这样一种抽象:一个 Pod 的逻辑分组,一种可以访问它们的策略 —— 通常称为微服务. 这一组 Pod 能够被 Serv ...
- k8s 辨析 port、NodePort、targetPort、containerPort 区别
刚接触 k8s 涉及到端口到内容较多,容易混淆,这里整理如下: 目录 nodePort port targetPort containerPort 参考文章 nodePort nodePort 提供了 ...
- k8s中几个基本概念的理解,pod,service,deployment,ingress的使用场景
k8s 总体概览 前言 Pod 副本控制器(Replication Controller,RC) 副本集(Replica Set,RS) 部署(Deployment) 服务(Service) ingr ...
- k8s中ingress,service,depoyment,pod如何关联
k8s中pod通过label标签名称来识别关联,它们的label name一定是一样的.ingress,service,depoyment通过selector 中app:name来关联 1.查询发布 ...
- 在k8s中的基本概念
在k8s中的基本概念 一.Pod1. podk8s下最重要也最基本的概念,由一个根容器Pause和许多用户业务容器组成,是容器的载体. 2. pod的yaml定义格式及字段 apiVersion: v ...
随机推荐
- 论文精读:用于少样本图像识别的语义提示(Semantic Prompt for Few-Shot Image Recognition)
原论文于2023.11.6撤稿,原因:缺乏合法的授权,详见此处 Abstract 在小样本学习中(Few-shot Learning, FSL)中,有通过利用额外的语义信息,如类名的文本Embeddi ...
- 一文详解应用安全防护ESAPI
本文分享自华为云社区<应用安全防护ESAPI>,作者: Uncle_Tom. 1. ESAPI 简介 OWASP Enterprise Security API (ESAPI)是一个免费. ...
- .Net Core + 微信赋能企业级智能客服系统--学习笔记
摘要 围绕目前需求猛增的微信及移动端企业智能客服业务,利用 .NET Core 的一系列优秀特性及 SignalR 模块打造全双工.跨微信/QQ/钉钉等应用平台.跨系统平台.跨终端.支持企业级并发的移 ...
- Linux-编译源码时所需提前安装的常用依赖包列表
编译源码时所需提前安装的常用依赖包列表: yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel f ...
- 线性SVM决策过程的可视化
线性 SVM 决策过程的可视化 导入模块 from sklearn.datasets import make_blobs from sklearn.svm import SVC import matp ...
- NOI 2019 补全记录
D1T1 回家路线 好久之前写的,忘了具体细节,但是发现有平方项所以考虑拆项之后斜率优化. D1T2 机器人 考虑 DP. 记 \(f_{l,r,i}\) 表示 \([l,r]\) 这段区间,最大值为 ...
- NC16416 [NOIP2017]逛公园
题目链接 题目 题目描述 策策同学特别喜欢逛公园. 公园可以看成一张 N 个点 M 条边构成的有向图,且没有自环和重边.其中 1 号点是公园的入口, N 号点是公园的出口,每条边有一个非负权值,代表策 ...
- Python subProcess库以及Popen类的使用
subprocess库是一个十分强大且常用的库,它可以用来调用第三方工具(例如:exe.另一个python文件.命令行工具). 1.常用函数call() :执行由参数提供的命令,把数组作为参数运行命令 ...
- Python三次样条插值与MATLAB三次样条插值简单案例
1 三次样条插值 早期工程师制图时,把富有弹性的细长木条(所谓样条)用压铁固定在样点上,在其他地方让它自由弯曲,然后沿木条画下曲线,成为样条曲线. 设函数S(x)∈C2[a,b] ,且在每个小区间[x ...
- 常见的问题系列--- Swagger @ApiOperationSupport忽略失效的问题
https://www.cnblogs.com/hujunwei/p/15853307.html