负载均衡接入 怎么配置KubernetesIngress负载均衡

风墨姑娘_3671

风墨姑娘_3671

2026-09-24

332人浏览

原创

kubernetes中ingress本身不执行负载均衡,实际由ingress controller(如ingress-nginx)实现;需先部署controller,再配置service与ingress资源,并通过注解或configmap设置轮询、ip_hash、least_conn等策略。

负载均衡接入 怎么配置kubernetesingress负载均衡

Kubernetes 中的 Ingress 本身不直接做负载均衡,它只是一个路由规则的声明接口。真正执行七层负载均衡的是背后的 Ingress Controller(比如 ingress-nginxHAProxy 或云厂商 ALB/GCLB)。所以“配置 Ingress 负载均衡”,本质是两步:部署合适的 Ingress Controller + 正确编写 Ingress 资源并配合注解控制分发行为


1. 先装好 Ingress Controller

没有 Controller,Ingress 资源只是 YAML 文件,不会生效。

  • 推荐使用 ingress-nginx(社区最成熟、文档最全):

    kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.10.2/deploy/static/provider/cloud/deploy.yaml

    ✅ 注意:生产环境建议用 Helm 安装,便于配置调优(如 worker 进程数、HTTP/2、TLS 复用等)

  • 验证是否就绪:

    kubectl get pods -n ingress-nginx
    # 看到 Running 状态的 controller pod 即可

2. 配置后端 Service 和 Deployment

Ingress 只能转发到已存在的 Service,且 Service 必须有明确的 selector 匹配 Pod:

apiVersion: v1
kind: Service
metadata:
  name: web-svc
spec:
  selector:
    app: web
  ports:
    - port: 80
      targetPort: 8080

确保对应 Deployment 的 label 是 app: web,否则 Ingress 找不到后端。


3. 编写 Ingress 资源,启用负载均衡行为

默认就是轮询(Round Robin),但你可以按需显式指定策略或增强能力:

  • 基础域名路由 + 默认轮询

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: web-ingress
      annotations:
        nginx.ingress.kubernetes.io/load-balance: "round-robin"  # 可省略,默认即此
    spec:
      rules:
      - host: example.com
        http:
          paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: web-svc
                port:
                  number: 80
  • 按客户端 IP 保持会话(IP Hash)

    Kubernetes Skills
    Kubernetes Skills

    针对 Kubernetes 仪表板和 Web UI 的浏览器自动化。适用于与 Kubernetes Dashboard、Grafana、ArgoCD UI 或其他 Web 界面交互。需要设置 MCP_BROWSER_ENABLED=true。

    下载
    annotations:
      nginx.ingress.kubernetes.io/load-balance: "ip_hash"
  • 优先发给连接最少的 Pod(适合长连接/IO密集型)

    annotations:
      nginx.ingress.kubernetes.io/load-balance: "least_conn"
  • 启用 Cookie 会话保持(Sticky Sessions)

    annotations:
      nginx.ingress.kubernetes.io/affinity: "cookie"
      nginx.ingress.kubernetes.io/session-cookie-name: "INGRESS_ROUTE"
      nginx.ingress.kubernetes.io/session-cookie-expires: "1728000"
      nginx.ingress.kubernetes.io/session-cookie-max-age: "1728000"

4. (可选)全局默认策略统一管理

不想每个 Ingress 都加注解?改 ingress-nginx 的 ConfigMap:

kubectl edit configmap -n ingress-nginx ingress-nginx-controller

data 下添加或修改:

load-balance: "least_conn"

该设置会影响所有未显式覆盖注解的 Ingress。


5. 验证与调试

  • 查看 Ingress 是否绑定成功:

    kubectl get ingress
    # ADDRESS 字段应有 IP(NodePort 模式下可能是空,需查 controller service)
  • 查看 controller 日志,确认规则加载无报错:

    kubectl logs -n ingress-nginx deploy/ingress-nginx-controller
  • curl 测试:

    curl -H "Host: example.com" http://<ingress_ip></ingress_ip>
  • 进入 controller Pod 查看生成的 upstream 配置:

    kubectl exec -n ingress-nginx deploy/ingress-nginx-controller -- cat /etc/nginx/nginx.conf | grep -A 10 "upstream"

不复杂但容易忽略细节。关键不是写对 Ingress,而是让 Controller 跑起来、Service 对得上、注解用得准。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

kubernetes

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

417

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

820

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2412

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

816

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

709

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

374

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2156

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

3972

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

647

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Kubernetes官方教程手册
Kubernetes官方教程手册

共0课时 | 0人学习

Kubernetes官方中文文档
Kubernetes官方中文文档

共0课时 | 0人学习