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 ...
随机推荐
- 构建Keepalived高可用集群
Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作 ...
- React 的学习笔记一 (未完结)
一.React 是什么 React 是一个声明式,高效且灵活的用于构建用户界面的 JavaScript 库.使用 React 可以将一些简短.独立的代码片段组合成复杂的 UI 界面,这些代码片段被称作 ...
- Redis有哪些潜在的慢操作?
Redis作为内存数据库,访问速度快是最大的特点,那么,什么情况下,Redis也会变慢呢? Redis底层数据结构 Redis有5种基本数据类型:String,List,Hash,Set,ZSet 有 ...
- ASP.NET Core分布式项目实战(oauth2 + oidc 实现 server部分)--学习笔记
任务15:oauth2 + oidc 实现 server部分 基于之前快速入门的项目(MvcCookieAuthSample): https://www.cnblogs.com/MingsonZhen ...
- Python脚本的输入输出
一.必备知识回顾和补充 1. Hello world回顾 1.输出文本,使用print函数输出文本. 2.让用户输入名字,然后输出带名字的问候语.使用input函数获取用户的输入,使用变量保存输入值. ...
- Pandas练习
背景介绍 本数据集包括了2015年至2017年我国36个主要一线城市.特区的一些年度数据,包括产值.人口.就业.教育.医疗.经济贸易.房地产投资等方面. 包含文件: 2015年国内主要城市年度数据.c ...
- 【leetcode】合并 k 个有序链表,我给了面试官这 5 种解法
开胃菜 在进入本节的正题之前,我们先来看一道开胃菜. 题目 21. 合并两个有序链表 将两个升序链表合并为一个新的 升序 链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1 ...
- Linux证书问题:curl#60 - “The certificate issuer‘s certificate has expired
问题说明 最近在centos7上打算安装php7版本,需要下载一个外网https的yum源,结果报错如下: 执行命令 rpm -Uvh https://mirror.webtatic.com/yum/ ...
- Java集合框架学习(十五) ListIterator接口详解
ListIterator介绍 一个为list对象设计的迭代器,允许开发人员在2个方向上迭代,修改和获得list迭代位置. ListIterator 没有所谓当前元素. 它的游标位置总是位于previo ...
- Java并发编程实例--3.打断一个线程
一般来讲一个java程序如果运行着多个线程,那么只有在这些线程都运行完毕后才会终止. 但有时候,我们需要去结束某个线程或者取消某个任务.此时就用到了Java线程的打断机制,即interruption. ...