首页 > 其他分享 >有了ingress,是否还需要kub-proxy?

有了ingress,是否还需要kub-proxy?

时间:2024-07-12 17:21:40浏览次数:11  
标签:ingress Service Headless nginx proxy kube kub

情况描述:部署了ingress-nginx,同时设置service clusterIP: None。

问题:这种情况下,是否还需要使用kub-proxy?

 

根据描述的情况,即部署了ingress-nginx并设置了Service的clusterIP: None(通常称为Headless Service),我们来探讨是否还需要使用kube-proxy以及他们之间的关系。

是否需要使用kube-proxy?

是的,即使部署了ingress-nginx并设置了Headless Service,kube-proxy仍然是需要的。

原因如下:

  1. kube-proxy的基本作用:kube-proxy是Kubernetes集群中用于实现Service和Pod之间网络通信的关键组件。它负责将Service的虚拟IP(VIP)映射到后端Pod的真实IP上,无论是ClusterIP类型的Service还是Headless Service,kube-proxy都扮演着重要的角色。对于Headless Service,kube-proxy虽然不会为Service分配VIP,但它仍然会确保DNS解析能够返回后端Pod的IP地址列表,这是通过更新集群DNS来实现的。

  2. ingress-nginx与kube-proxy的关系:ingress-nginx主要用于处理进入集群的HTTP/HTTPS请求,并根据Ingress资源定义的规则将请求路由到相应的Service。即使Service是Headless的,ingress-nginx仍然需要知道如何将请求转发到后端Pod。虽然ingress-nginx不直接依赖于kube-proxy的VIP映射功能,但它依赖于kube-proxy确保Service(包括Headless Service)的DNS解析正确,以及集群内部网络的基本连通性。

  3. Headless Service的特殊性:对于设置了clusterIP: None的Headless Service,它不会分配集群内部的VIP,而是直接通过DNS返回后端Pod的IP地址列表。这种类型的Service通常用于需要直接访问Pod的场景,如StatefulSet管理的有状态应用。尽管ingress-nginx不直接处理Headless Service的路由(因为ingress-nginx主要处理HTTP/HTTPS请求),但在整个集群的网络通信中,kube-proxy仍然扮演着不可或缺的角色。

他们之间的关系

  • 互补关系:kube-proxy为集群内部的服务发现和负载均衡提供了基础支持,而ingress-nginx则在此基础上提供了更高级别的HTTP/HTTPS路由和负载均衡功能。即使对于Headless Service,这种互补关系仍然存在。
  • 依赖关系:ingress-nginx依赖于kube-proxy确保集群内部网络的基本连通性和DNS解析的正确性。虽然ingress-nginx不直接处理Headless Service的路由,但它仍然需要kube-proxy来维护集群的网络环境。

结论

因此,在部署了ingress-nginx并设置了Service的clusterIP: None的情况下,kube-proxy仍然是必需的。它们之间保持着互补和依赖的关系,共同为Kubernetes集群提供稳定、可靠的网络通信服务。

 

标签:ingress,Service,Headless,nginx,proxy,kube,kub
From: https://www.cnblogs.com/david-cloud/p/18298980

相关文章

  • “QNAP Nginx-Proxy-Manager 安装指引”
    大家好,这次推荐的应用是NginxProxyManager一个反向代理管理系统,它基于Nginx并具有漂亮干净的WebUI。以下是关于NginxProxyManager的一些特点和使用信息:特点:-提供美观且安全的管理界面,基于Tabler构建。-无需了解Nginx知识,即可轻松创建转发域、重定向、流和......
  • 编译安装Kubernetes 1.29 高可用集群(9)--Harbor私有仓库部署
    1.环境说明操作系统:openEuler22.03软件版本:harbor2.10.32.Harbor软件安装2.1安装前准备#systemctldisablefirewalld.service#systemctlstopfirewalld.service#sed-i's/SELINUX=enforcing/SELINUX=disabled/'/etc/selinux/config#setenforce0#hostnamec......
  • ali - Kubernetes镜像源
    1.Kubernetes镜像源配置由于Kubernetes官方变更了仓库的存储路径以及使用方式,如果需要使用1.28及以上版本,请使用新版配置方法进行配置。下载地址:https://mirrors.aliyun.com/kubernetes/新版下载地址:https://mirrors.aliyun.com/kubernetes-new/1.1配置方法新版配置方......
  • Kubernetes安装-kubeadm方式
    环境1.软件版本系统版本centos7.9(内核采用4.19)docker20.10.15kubeadm1.22.172.ip划分主机名ip地址系统配置kubeadm-master10.103.236.2012core_2gkubeadm-node0110.103.236.2021core_2gkubeadm-node0210.103.236.2031core_2gkubeadm......
  • ES6 之 Proxy(代理)总结(二)
    ES6引入了Proxy对象,它用于创建一个对象的代理,从而可以拦截并自定义对象的基本操作,如属性查找、赋值、枚举、函数调用等。主要特性:拦截操作:可以拦截对象的各种操作,如获取属性、设置属性、属性是否存在等。自定义行为:通过拦截操作,可以自定义对象的行为。撤销代理:可以撤......
  • Kubernetes高可用集群二进制离线部署(Runtime Docker)
    Kubernetes高可用集群二进制部署(RuntimeDocker)Kubernetes(简称为:k8s)是Google在2014年6月开源的一个容器集群管理系统,使用Go语言开发,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效,Kubernetes提供了资源调度、部署管理、服务......
  • k8s集群安装-kubeadm安装
    kubeadm安装集群准备工作角色IP组件k8s-master192.168.1.20kube-apiserver,kube-controller-manager,kube-scheduler,docker,etcdk8s-node01192.168.1.18kubelet,kube-proxy,docker,etcdk8s-node02192.168.1.19kubelet,kube-proxy,docker,etcddocker版......
  • Linux (10) 配置HAProxy,实现负载均衡器的主备模式
    《WindowsAzurePlatform系列文章目录》 最近有1个客户需求,在这里记录一下。客户提出需要使用Azure负载均衡器(四层负载均衡器),实现主备模式。场景是负载均衡器后有2台虚拟机-平时100%的流量都发送到第一台虚拟机-如果第一台虚拟机发生......
  • Linux从入门到精通—— 如何在 Linux 系统中启用 Kubectl 命令自动补全
    如何在Linux系统中启用Kubectl命令自动补全一、背景在使用Kubernetes进行日常开发和运维工作时,kubectl命令行工具是不可或缺的一部分。为了提升工作效率,启用kubectl命令的自动补全功能是一个明智的选择。本文将指导你如何在基于Linux的系统上安装并配置kubectl命令的......
  • docker-compose创建haproxy教程
    本文主要讲解通过docker-compose创建haproxy并进行代理一、haproxy简介HAProxy是一款基于事件驱动、单进程模型设计的四层与七层负载均衡器,它能够在TCP/UDP层面以及HTTP(S)等应用层协议上实现高效的流量分发。HAProxy不仅适用于Web服务器负载均衡,还能应用于数据库、邮件服务器......